索引

作者: msjgodboy | 来源:发表于2018-03-12 17:05 被阅读0次

    含义:索引是一种数据结构,可以理解为“排好序方便快速查找的数据结构”。

    建立索引的优势:通过建立索引,可以加快数据的检索效率。

    建立索引的劣势:降低对表的操作速度(如INSERT,UPDATE,DELETE),因为对表数据进行操作,数据库需要对索引进行优化;其次索引也要占磁盘空间,它需要记录实体表被指向的字段。

    索引分类:单值索引,唯一索引,复合索引

    基本语法:

    创建索引:create index index_name on table_name(column...)

    删除索引:drop index index_name on table_name

    查看索引:show index from table_name

    修改索引:alter table table_name add primary key(column):添加主键索引

                      alter table table_name add unique index_name(column...):添加唯一索引

                      alter table table_name add index_name(column...):添加普通索引

    索引的优化

    1:表中的主键需要建索引(默认创建)

    2:需要频繁查询的字段

    3:逻辑外键关系需要建索引

    4:表记录太少不适合建索引

    5:表的增删改操作频繁不适合建索引

    6:mysql在使用不等于(!=或者<>)的时候无法使用索引导致全表扫描

    7:is null, is not null也无法使用索引

    8:like以通配符开头('%abc...')mysql索引失效会变成全表扫描的操作

    9:字符串不加单引号索引失效

    10:少用or,用它来连接会索引失效

    11:不在索引列上做任何操作(计算,函数,(自动or手动)类型转换,会导致索引丢失转而全表扫描)

    12:尽量使用覆盖索引(只访问索引的查询(索引和查询列一致)),减少select *

    13:单键/组合索引的选择问题(高并发下倾向创建组合索引)

    14:查询中排序的字段,排序的字段若通过索引去访问将大大提高排序速度

    15:查询中排序的字段,排序的字段若通过索引去访问将大大提高排序速度

    相关文章

      网友评论

          本文标题:索引

          本文链接:https://www.haomeiwen.com/subject/eovnfftx.html