索引 订阅
在关系数据库中,索引是一种单独的、物理的对数据库表中一列或多列的值进行排序的一种存储结构,它是某个表中一列或若干列值的集合和相应的指向表中物理标识这些值的数据页的逻辑指针清单。索引的作用相当于图书的目录,可以根据目录中的页码快速找到所需的内容。索引提供指向存储在表的指定列中的数据值的指针,然后根据您指定的排序顺序对这些指针排序。数据库使用索引以找到特定值,然后顺指针找到包含该值的行。这样可以使对应于表的SQL语句执行得更快,可快速访问数据库表中的特定信息。当表中有大量记录时,若要对表进行查询,第一种搜索信息方式是全表搜索,是将所有记录一一取出,和查询条件进行一一对比,然后返回满足条件的记录,这样做会消耗大量数据库系统时间,并造成大量磁盘I/O操作;第二种就是在表中建立索引,然后在索引中找到符合查询条件的索引值,最后通过保存在索引中的ROWID(相当于页码)快速找到表中对应的记录。 展开全文
在关系数据库中,索引是一种单独的、物理的对数据库表中一列或多列的值进行排序的一种存储结构,它是某个表中一列或若干列值的集合和相应的指向表中物理标识这些值的数据页的逻辑指针清单。索引的作用相当于图书的目录,可以根据目录中的页码快速找到所需的内容。索引提供指向存储在表的指定列中的数据值的指针,然后根据您指定的排序顺序对这些指针排序。数据库使用索引以找到特定值,然后顺指针找到包含该值的行。这样可以使对应于表的SQL语句执行得更快,可快速访问数据库表中的特定信息。当表中有大量记录时,若要对表进行查询,第一种搜索信息方式是全表搜索,是将所有记录一一取出,和查询条件进行一一对比,然后返回满足条件的记录,这样做会消耗大量数据库系统时间,并造成大量磁盘I/O操作;第二种就是在表中建立索引,然后在索引中找到符合查询条件的索引值,最后通过保存在索引中的ROWID(相当于页码)快速找到表中对应的记录。
信息
作    用
应于表的SQL语句执行得更快
分    类
数据库概念
中文名
索引
外文名
index
索引发展历史
旧称通检、备检或引得。组成的基本单位是索引款目。款目一般包括索引词、说明或注释语 、出处3项内容 。所有索引款目实现有序化编排。其本质特征是只揭示内容出处或文献线索 ,并不直接提供事实、资料本身。主要功能是为人们准确、迅速地获得文献资料提供线索性指引。常见的索引主要有报刊论文资料索引、文集篇目索引、语词索引、文句索引、关键词索引、专名索引、主题索引等。索引最早出现于西方,主要是中世纪欧洲宗教著作的索引。18世纪以后西方开始有主题索引,至19世纪末,内容分析索引被广泛使用。中国的索引出现较晚。一般认为,明末傅山所编的《两汉书姓名韵》是现存最早的人名索引。清代乾嘉时期,章学诚曾力倡编纂群书综合索引。20世纪20年代,随着西方索引理论与编制技术的传入,中国现代意义上的索引编制与研究才蓬勃展开 。1930年钱亚新发表《索引和索引法》,1932年洪业发表《引得说》,标志着具有中国特色的现代索引理论、技术已迅速发展起来。20世纪50年代,计算机技术被运用于索引编制 。此后,机编索引的大量出现,使索引编制理论、技术、索引载体形式发生了深刻变革。SQL标准中没有涉及索引,但商用关系数据库管理系统一般都支持索引机制,只是不同的关系数据库管理系统支持的索引类型不尽相同。索引已经成为关系数据库非常重要的部分。它们被用作包含所关心数据的表指针。通过一个索引,能从表中直接找到一个特定的记录,而不必连续顺序扫描这个表,一次一个地去查找。对于大的表,索引是必要的。没有索引,要想得到一个结果要等好几个小时、好几天,而不是几秒钟。 [1] 
收起全文
精华内容
参与话题
问答
  • 索引

    千次阅读 多人点赞 2018-09-07 23:27:20
    索引是一种对数据库表中一列或多列的值进行排序的一种数据存储结构。 需要占用磁盘空间。 类型:普通索引,唯一索引,主键索引,复合索引,聚族索引。 唯一索引:不允许具有索引值相同的行,即每一行数据的索引的...

    索引:是对数据库表中一列或多列的值进行排序的一种结构,只有当经常查询索引列中的数据时,才需要在表上创建索引。索引占用磁盘空间,并且降低添加、删除和更新行的速度。当然索引也有好处就是查询速度快,它利还是大于弊的所以请慎重使用索引
    常用的索引类型:
    普通索引:没有任何限制 create index index_name on table(column(length))
    唯一索引:索引列的值必须唯一,但允许为空值:不允许任何两行具有相同索引值的索引。
    主键索引:主键,一个表,只能有一个逐渐,不允许为空
    组合索引:指多个字段上创建的索引,只有在查询条件中使用了创建索引时的第一个字段,索引才会被使用,组合索引遵循最左前缀集合。
    一、创建索引要注意哪些?
    表的主键、外键必须有索引;数据量超过300的表应该有索引;经常查询的表的字段应该建立索引;经常出现在where子句中的字段,应该建立索引;在选择性高的字段上建索引;在小字段上建索引;频繁进行数据更新(增,删,改)的表,尽量少建索引;
    二、一般选择在这样的列上创建索引:
    在经常需要查询的表的字段上创建索引,可以加快搜索的速度;在经常使用连接的列上创建索引,这些列主要是外键,可以加快连接的速度;在经常需要根据范围进行搜索的列上添加索引,因为索引已经排序,其指定的范围是连续的;在经常需要排序的列上创建索引,因为索引已经排序,这样查询可以利用索引的排序,加快排序速度;在经常使用where子句的列上创建索引,加快条件的判断速度;经常出现在order by 、group by、distinct后面的字段创建索引

    三、一般不选择具有这些特点的列上创建索引

    1. 对于那些在查询中很少使用或者参考的列不应该创建索引。这是因为,既然这些列很少使用到,因此有索引或者无索引,并不能提高查 询速度。相反,由于增加了索引,反而降低了系统的维护速度和增大了空间需求;

    2. 不要在有大量相同取值的字段上,建立索引。这是因为,由于这些列的取值很少,例如人事表的性别列,在查询的结果中,结果集的数据行占了表中数据行的很大比例,即需要在表中搜索的数据行的比例很大。增加索引,并不能明显加 快检索速度;

    3. 对于那些定义为text, image和bit数据类型的列不应该增加索引。这是因为,这些列的数据量要么相当大,要么取值很少;

    4. 当修改性能远远大于检索性能时,不应该创建索引。这是因为,修改性能和检索性能是互相矛盾的。当增加索引时,会提高检索性能,但是会降低修改性能。当减少索引时,会提高修改性能,降低检索性能。因此,当修改性能远远大于检索性能时,不应该创建索引。

    四、创建索引需要注意的地方
    限制表上的索引数目。对一个存在大量更新操作的表,所建索引的数目一般不要超过3个,最多不要超过5个。索引虽说提高了访问速度,但太多索引会影响数据的更新操作。

    避免在取值朝一个方向增长的字段(例如:日期类型的字段)上,建立索引;对复合索引,避免将这种类型的字段放置在最前面。由于字段的取值总是朝一个方向增长,新记录总是存放在索引的最后一个叶页中,从而不断地引起该叶页的访问竞争、新叶页的分配、中间分支页的拆分。此外,如果所建索引是聚集索引,表中数据按照索引的排列顺序存放,所有的插入操作都集中在最后一个数据页上进行,从而引起插入“热点”。
    
    对复合索引,按照字段在查询条件中出现的频度建立索引。在复合索引中,记录首先按照第一个字段排序。对于在第一个字段上取值相同的记录,系统再按照第二个字段的取值排序,以此类推。因此只有复合索引的第一个字段出现在查询条件中,该索引才可能被使用。因此将应用频度高的字段,放置在复合索引的前面,会使系统最大可能地使用此索引,发挥索引的作用。
    

    删除不再使用,或者很少被使用的索引。表中的数据被大量更新,或者数据的使用方式被改变后,原有的一些索引可能不再被需要。数据库管理员应当定期找出这些索引,将它们删除,从而减少索引对更新操作的影响。
    哪些情况下索引会失效?

    如果条件中有or,即使其中有条件带索引也不会使用(这也是为什么尽量少用or的原因)
    对于多列索引(组合索引)不是使用的第一部分,则会失效
    Like查询以%开头会失效(aa%不会失效)
    如果列类型是字符串,则一定要在条件语句中讲数据用引号引起来,否则索引会失效
    如果mysql估计是用全表扫描要比使用索引块,则不使用索引

    展开全文
  • MySQL:索引相关操作

    万次阅读 2019-01-16 23:56:21
    1

    在数据库操作中,经常需要查找特定的数据,以一条“select * from zyftest where id=10000”为例,数据库必须从第一条记录来时遍历,直到找到id为10000的数据,这样的效率显然非常低。所以,MySQL允许建立索引来加快数据表的查询和排序。

    一、索引的概念分析

    索引的目的在于提高查询效率,与我们查阅图书所用的目录是一个道理:先定位到章,然后定位到该章下的一个小节,然后找到页数。相似的例子还有:查字典,查火车车次,飞机航班等。

    本质都是:通过不断地缩小想要获取数据的范围来筛选出最终想要的结果,同时把随机的事件变成顺序的事件,也就是说,有了这种索引机制,我们可以总是用同一种查找方式来锁定数据。

    数据库的索引是对数据库表中一列或多列的值进行排序后的一种结构,其作用就是提高表中数据的查询速度。MySQL中的索引可以大致分为以下几类:主键索引、唯一索引、普通索引、全文索引、组合索引、空间索引。

    • 普通索引是由KEY或INDEX定义的索引,是MySQL的基本索引类型,其值是否唯一和非空由字段本身的约束条件所决定。
    • 唯一索引是指由UNIQUE定义的索引,该索引所在字段的值必须是唯一的。
    • 全文索引是由FULL TEXT定义的索引,只能创建在CHAR、VARCHAR或TEXT类型的字段上,而且,现在只有MyIASM存储引擎支持全文索引。
    • 主键索引 PRIMARY KEY,它是一种特殊的唯一索引,不允许有空值。一般是在建表的时候同时创建主键索引。(注意:一个表只能有一个主键)
    • 组合索引值得是在表中多个字段上创建索引,只有在查询中使用了这些字段中的第一个字段时,该索引才会被使用。
    • 空间索引是由SPATIAL定义的索引,它只能创建在空间数据类型的字段上。MySQL中空间数据类型有四种:GEOMETRY、POINT、LINESTRING和POLYGON。注意创建空间索引的字段必须将其声明为NOT NULL,并且空间索引只能在存储引擎为MyISAM的表中创建。

    索引的优缺点主要体现在:

    • 优势:可以快速检索,减少I/O次数,加快检索速度;根据索引分组和排序,可以加快分组和排序;
    • 劣势:索引本身也是表,因此会占用存储空间,一般来说,索引表占用的空间的数据表的1.5倍;索引表的维护和创建需要时间成本,这个成本随着数据量增大而增大;构建索引会降低数据表的修改操作(删除,添加,修改)的效率,因为在修改数据表的同时还需要修改索引表;

    二、创建索引相关操作

    创建索引的方式主要有以下三种方式

    (一)创建表的时候创建索引

    创建表的时候可以直接创建索引,方式简单、方便,基本语法格式如下:

    CREATE TABLE 表名( 
    属性名 数据类型[完整性约束条件], 
    属性名 数据类型[完整性约束条件], 
    ...... 
    属性名 数据类型 [ UNIQUE | FULLTEXT | SPATIAL ] INDEX | KEY 
          [ 别名] ( 属性名1 [(长度)] [ ASC | DESC] ) 
    );

    具体解释:

    UNIQUE是可选参数,表示索引为唯一性索引

    FULLTEXT是可选参数,表示索引为全文索引

    SPATIAL也是可选参数,表示索引为空间索引

    INDEX和KEY参数用来指定字段为索引的,两者选择其中之一就可以了,作用是一样的;

    "别名"是可选参数,用来给创建的索引取的新名称;

    "属性1"参数指定索引对应的字段的名称,该字段必须为前面定义好的字段;

    "长度"是可选参数,其指索引的长度,必须是字符串类型才可以使用;

    "ASC"和"DESC"都是可选参数,"ASC"参数表示升序排列,"DESC"参数表示降序排列。

    基本举例如下:

    CREATE TABLE `hc_project_vote` (
        `rcd_id` INT (11) NOT NULL AUTO_INCREMENT COMMENT 'id',
        `create_time` datetime COMMENT '创建时间',
        `update_time` datetime COMMENT '更新时间',
        `sn` VARCHAR (30) DEFAULT '' COMMENT 'sn',
        `project_sn` VARCHAR (30) DEFAULT '' COMMENT '项目sn',
        `user_sn` VARCHAR (30) DEFAULT '' COMMENT '投票者sn',
        `vote_time` datetime COMMENT '投票时间',
        `visit_ip` VARCHAR (15) DEFAULT '' COMMENT '投票者ip',
        PRIMARY KEY (`rcd_id`),
        KEY `idx_hc_vote_project_sn` (`project_sn`) USING BTREE,
        KEY `idx_hc_vote_user_sn` (`user_sn`) USING BTREE
    )ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT '项目投票记录表';

    相关具体案例操作:

    1.创建普通索引

    create table zyf(
        id int,
        name varchar(20),
        score float,
        index(id)
    );

    可以使用show create table 语句查看表的结构。

    为了查看索引是否被使用,可以使用explain 语句进行查看: explain select * from zyf where id=1 \G;  (possible_key和key的值都为id就说明id索引已经存在并且已经开始使用)

     

     

     

     

    三、删除索引相关操作

     

    四、索引数据结构分析

     

    五、聚集索引与辅助索引分析

     

    六、联合索引与覆盖索引分析

     

    七、正确使用索引相关分析

     

    八、索引相关内容测试

     

     

    参考资料:

    1.传智播客教育科技股份有限公司-高教产品研发部,《MYSQL数据库入门》,清华大学出版社,2018.

    2.https://www.jb51.net/article/140749.htm

    3.https://blog.csdn.net/tongdanping/article/details/79878302

    4.https://www.runoob.com/mysql/mysql-index.html

    5.https://www.cnblogs.com/realshijing/p/8419732.html

     

    展开全文
  • 数据库索引

    千次阅读 多人点赞 2019-08-20 22:49:54
    文章目录数据库索引定义优缺点索引类型建立普通索引或组合索引适合建立索引的情况索引失效的sql 定义 索引是对数据库表中一列或多列的值进行排序的一种结构,使用索引可快速访问数据库表中的特定信息。数据库索引...

    数据库索引

    定义

    索引是对数据库表中一列或多列的值进行排序的一种结构,使用索引可快速访问数据库表中的特定信息。数据库索引好比是一本书前面的目录,能加快数据库的查询速度。索引分为聚簇索引和非聚簇索引两种,聚簇索引是按照数据存放的物理位置为顺序的,而非聚簇索引就不一样了;聚簇索引能提高多行检索的速度,而非聚簇索引对于单行的检索很快。

    本人对于索引理解较浅,如有错误或不足的地方,欢迎指正,共同学习。

    优缺点

    优点

    • 在设计数据库时,通过创建一个惟一的索引,能够在索引和信息之间形成一对一的映射式的对应关系,增加数据的惟一性特点。

    • 能提高数据的搜索及检索速度,符合数据库建立的初衷。

    • 能够加快表与表之间的连接速度,这对于提高数据的参考完整性方面具有重要作用。

    • 在信息检索过程中,若使用分组及排序子句进行时,通过建立索引能有效的减少检索过程中所需的分组及排序时间,提高检索效率。

    • 建立索引之后,在信息查询过程中可以使用优化隐藏器,这对于提高整个信息检索系统的性能具有重要意义。

      缺点

    • 在数据库建立过程中,需花费较多的时间去建立并维护索引,特别是随着数据总量的增加,所花费的时间将不断递增。

    • 在数据库中创建的索引需要占用一定的物理存储空间,这其中就包括数据表所占的数据空间以及所创建的每一个索引所占用的物理空间,如果有必要建立起聚簇索引,所占用的空间还将进一步的增加

    • 在对表中的数据进行修改时,例如对其进行增加、删除或者是修改操作时,索引还需要进行动态的维护,这给数据库的维护速度带来了一定的麻烦。

    索引类型

    根据数据库的功能,可以在数据库设计器中创建三种索引唯一索引、主键索引和聚集索引。有关数据库所支持的索引功能的详细信息,请参见数据库文档。

    提示:尽管唯一索引有助于定位信息,但为获得最佳性能结果,建议改用主键唯一约束

    唯一索引

    UNIQUE
    create unique index 索引名 on 表名(表中的列[(length)])
    alter table 表名 add UNIQUE 索引名 (表中的列[(length)])
    

    唯一索引是不允许其中任何两行具有相同索引值的索引。当现有数据中存在重复的键值时,大多数数据库不允许将新创建的唯一索引与表一起保存。数据库还可能防止添加将在表中创建重复键值的新数据。例如,如果在employee表中职员的姓(lname)上创建了唯一索引,则任何两个员工都不能同姓。

    主键索引

    PRIMARY KEY  -- 建表时自接指定
    alert table 表名 add primary key (表中的列[(length)])
    

    数据库表经常有一列或多列组合,其值唯一标识表中的每一行。该列称为表的主键。在数据库关系图中为表定义主键将自动创建主键索引,主键索引是唯一索引的特定类型。该索引要求主键中的每个值都唯一。当在查询中使用主键索引时,它还允许对数据的快速访问。

    聚集索引

    在聚集索引中,表中行的物理顺序与键值的逻辑(索引)顺序相同。一个表只能包含一个聚集索引。如果某索引不是聚集索引,则表中行的物理顺序与键值的逻辑顺序不匹配。与非聚集索引相比,聚集索引通常提供更快的数据访问速度。聚集索引和非聚集索引的区别,如字典默认按字母顺序排序(物理顺序),读者如知道某个字的读音可根据字母顺序快速定位(索引顺序与物理顺序相同)。因此聚集索引和表的内容是在一起的。如读者需查询某个生僻字,则需按字典前面的索引,举例按偏旁进行定位,找到该字对应的页数,再打开对应页数找到该字。这种通过两个地方而查询到某个字的方式就如非聚集索引。

    建立普通索引或组合索引

    create index 索引名 on 表名(列名);
    create index 索引名 on 表名(列名1,列名2,..); -- 组合索引
    

    组合索引 最左前缀 原则

    个人理解 例如 : create index index_abc on TEST_TAB(a,b,c); 相当于建立了 a, ab, abc 三组索引。

    只要某查询条件中包含复合索引中的第一个列,该查询就会走索引,如果不包含,就不会走索引

    有博主的实验 https://blog.csdn.net/tw7752/article/details/44595281

    适合建立索引的情况

    • 经常作为查询条件的列 (where)
    • 经常用于表连接的列,如外键 (join)
    • 经常用于排序的列 (order)

    索引失效的sql

    • 组合索引使用 or 索引失效 如 a=1 or b=2 or c=3

    • 索引条件为 is null / is not null 索引失效(看清况,测试过 null 比较多时, not null 会走索引)

    • 索引条件 like ‘%xxx’, 索引失效; like ‘xxxx%’ 索引生效

    • 索引列参加计算 如 t.score/10 > 10 失效, 应改成 t.score > 10*10

    • 索引列不要使用NOT ( != 、 <> )如 t.score! = 10 失效,改成:t.score > 10 or t.score < 10

    • 索引列上发生类型转换, 例如 VARCHAR2 类型的索引列 ,写成 where id = 1 ,应该 改成 where id = ‘1’ ( oracle实验)

    最好是 看一下sql的执行计划,看看是否走了索引。

    Oracle查看sql执行计划

    explain plan for  
    select xxx from tablename where xxx ;
    
    select * from table(dbms_xplan.display); 
    

    索引的原理 请看大神博客 https://blog.csdn.net/sinat_30186009/article/details/52169057

    组合索引设计 https://blog.csdn.net/bless2015/article/details/84035845

    展开全文
  • mysql 索引

    千次阅读 2019-07-26 16:34:11
    1.mysql索引的分列方式: ①单列索引:一个索引只包含单个列,一个表可以有多个单列索引 ②组合索引:一个索引包含多个列 2.索引的创建需要确保索引是引用在sql查询语句上 3.增加索引的优点: ①可以大大提高...

    1.mysql索引的分列方式:

    ①单列索引:一个索引只包含单个列,一个表可以有多个单列索引

    ②组合索引:一个索引包含多个列

    2.索引的创建需要确保索引是引用在sql查询语句上

    3.增加索引的优点:

    ①可以大大提高查询效率

    ②可以提高Mysql的检索速度

    4.增加索引的缺点:

    ①增加索引会降低更新表的速度,如执行insert,update,不仅要保存数据,还要保存索引文件

    ②索引会占用磁盘空间的索引文件

    5.索引创建语句:create index indecName on tableName(userName(length))

    6.修改表结构(添加索引):alter table tableName add index indexName(columnName)

    7.删除索引:drop index indexName on tableName

    8.唯一索引

      (1)唯一索引与其他索引类似,不同的是唯一索引的列值必须唯一,但允许有空值,如果是组合索引,则列值的组合必须唯一

      (2)创建索引:create unique index indexName on tableName(columnName(length))

      (3)修改表结构(增加索引): alter  table tableName add unique [indexName] (columnName(length))

     (4)删除索引: alter  table tableName drop index indexName

     

     

    展开全文
  • 多个单列索引和联合索引的区别详解

    万次阅读 多人点赞 2018-06-24 17:40:58
    那么当查询条件为2个及以上时,我们是创建多个单列索引还是创建一个联合索引好呢?他们之间的区别是什么?哪个效率高呢?我在这里详细测试分析下。 一、联合索引测试 注:Mysql版本为 5.7.20 创建测试表(表记录...
  • MySQL 索引

    万次阅读 2019-04-21 20:40:41
    MySQL索引的建立对于MySQL的高效运行是很重要的,索引可以大大提高MySQL的检索速度。 打个比方,如果合理的设计且使用索引的MySQL是一辆兰博基尼的话,那么没有设计和使用索引的MySQL就是一个人力三轮车。 索引分...
  • MySQL总结(二)——MySQL索引

    千次阅读 多人点赞 2019-09-14 12:27:56
    MySQL索引简介 MySQL索引使用的数据结构主要有BTree索引 和 哈希索引。对于哈希索引来说,底层的数据结构就是哈希表,因此在绝大多数需求为单条记录查询的时候,可以选择哈希索引,查询性能最快;其余大部分场景,...
  • GitHub 4.8k Star 的Java工程师成神之路 ,不来了解一下吗? GitHub 4.8k Star 的Java工程师成神之路 ,真的不来...相信很多人对于MySQL的索引都不陌生,索引(Index)是帮助MySQL高效获取数据的数据结构。 因为索引...
  • pandas小记:pandas索引和选择

    万次阅读 多人点赞 2014-01-08 21:49:08
    索引选择时建议全部使用loc(尤其是修改df原本数据时),原因是最下面说的视图和显示拷贝。 dataframe列选择 和Series一样,在DataFrame中的一列可以通过字典记法或属性来检索,返回Series: frame2[0]#选择第0列...
  • Mysql | 查看表的索引

    万次阅读 多人点赞 2018-02-07 19:58:40
    查看表的索引: show index from table_name(表名)
  • 但是书中又把InnoDB作为聚簇索引的代表、MyISAM作为非聚簇索引的代表,两者进行比较,这就导致了矛盾点,如果将二级索引等价于非聚簇索引,那InnoDB就不能完全代表聚簇索引;但是单从二级索引的存储形式来看,又属于...
  • 详述 Elasticsearch 通过范围条件查询索引数据的方法

    万次阅读 多人点赞 2019-04-05 11:15:59
    在使用 Elasticsearch 的时候,我们可能会遇到需要**以范围为条件查询索引数据**的需求。有两种方法可以实现我们的需求: - 第一种:在服务器或者终端,使用命令来查询索引数据; - 第二种:编写程序,通过 Elastic...
  • 说到索引,很多人都知道“索引是一个排序的列表,在这个列表中存储着索引的值和包含这个值的数据所在行的物理地址,在数据十分庞大的时候,索引可以大大加快查询的速度,这是因为使用索引后可以不用扫描全表来定位某...
  • MongoDb之TTL索引

    万次阅读 2020-09-06 11:49:34
    TTL全称是(Time To Live),TTL索引能对一个单列配置过期属性来实现对文档的自动过期删除,我们可以在对字段创建索引时添加expireAfterSeconds选项将索引转换为TTL索引,该字段需要是date类型,在以下几种场景下即使...
  • 索引是查询优化最主要的方式; 查询方式: 一种是:全表扫描; 一种是:利用数据表上建立的所以进行扫描。 1.索引类型分类 UNIQUE(唯一索引):不可以出现相同的值,可以有NULL值;( 加快查询速度,并且...
  • MySQL索引的创建与使用

    万次阅读 多人点赞 2018-08-06 18:49:59
    索引有很多,且按不同的分类方式,又有很多种分类。不同的数据库,对索引的支持情况也不尽相同。 声明:本人主要简单示例MySQL中的单列索引、组合索引的创建与使用。 索引的创建: 建表时创建: CREATE TABLE ...
  • 查看索引 show index from 数据库表名 alter table 数据库add index 索引名称(数据库字段名称) PRIMARY KEY(主键索引) ALTER TABLE `table_name` ADD PRIMARY KEY ( `column` ) UNIQUE(唯一索引) ...
  • python中找出numpy array数组的最值及其索引

    万次阅读 多人点赞 2018-02-13 16:24:40
    python中找出numpy array数组的最值及其索引 在list列表中,max(list)可以得到list的最大值,list.index(max(list))可以得到最大值对应的索引 但在numpy中的array没有index方法,取而代之的是where,其又是list...
  • MySQL普通索引、唯一索引、主索引、外键索引、复合索引、全文索引的使用
  • pandas Series索引问题

    2016-02-02 07:57:53
    索引列 价格列 索引列是时间,但是由于数据商的原因,毫秒都被标记成了0,因此出现了索引重复的问题 比如说 时间 价格 9:00:00 1500 9:00:00 1499 9:00:01 1498 9:00:01 1498 9:00:02 1497 9:00:03 ...
  • 索引的数据结构分析,数据库面试到索引最常见的问题分析,我总结了一下。
  • 通过结果对比的确可以看出like "%xxx%"这种是没有使用索引,进行了全表查询的,但是key为什么会显示area_level_name呢?正常的在进行全表扫描的时候,没有用到索引,key不用改为空吗? ![使用explain对select进行...
  • 在《面试官:为啥加了索引查询会变快?》一文中,我们介绍了索引的数据结构,正是因为索引使用了B+树,才使得查询变快。说白了,索引的原理就是减少查询的次数、减少磁盘IO,达到快速查找所需数据的目的 我们一起来...
  • mysql 如何添加索引

    万次阅读 2019-05-21 11:27:34
    1.添加PRIMARY KEY(主键索引) ALTER TABLE `table_name` ADD PRIMARY KEY ( `column` ) 2.添加UNIQUE(唯一索引) ALTER TABLE `table_name` ADD UNIQUE ( `column` ) 3.添加INDEX(普通索引) ALTER TABLE `table_...
  • 在navicat(mysql版)里,我可以给表中的字段加索引,索引的作用就是,当我修改索引字段值的时候,引用索引的字段值会自动更新.那么问题来了,plSql里有这种功能吗?或者说Oracle的管理工具里面有没有类似的功能? 举个例子来...
  • mysql 联合索引生效的条件、索引失效的条件

    万次阅读 多人点赞 2019-02-23 10:11:30
    1.联合索引失效的条件 联合索引又叫复合索引。两个或更多个列上的索引被称作复合索引。 对于复合索引:Mysql从左到右的使用索引中的字段,一个查询可以只使用索引中的一部份,但只能是最左侧部分。例如索引是key...

空空如也

1 2 3 4 5 ... 20
收藏数 382,255
精华内容 152,902
关键字:

索引