数据库整理(索引)

2 索引
使用树形结构提高查询速度的操作
叶子节点上:数据大小小,且区分度高
聚集索引:即主键索引:叶子节点存在id,关联着对应数据(主键)where ... 只能在主键的时候明显提高检索速度
只能给一个字段加主键,如果在where中不使用该字段,则索引无效
添加主键的方式即为添加主键索引的方式


辅助索引:在建立树形结构的时候,叶子节点中存的是列数据+id。获取列之后,在根据对应的id去找(使用聚集索引的模式)

                  这样的话,数据在叶子占用空间少,

唯一索引:unique

    创建:是直接在字段后加unique   或者后续添加   alter table 表名 add unique key 自己指定的索引名字(字段);

    删除: alter table 表名drop index 自己指定的索引名字   或者    drop index 自己指定的索引名字 on 表名;

普通索引:index

       创建时单独一个逗号隔开,index  自己指定的索引名字(字段)  或者后续添加   alter table 表名 add index 自己指定的索引名字(字段);

            删除同上

2.1 命中索引

       指的是如何合理的提高已经增加的索引的实际利用率

  范围查询:>,>=,like   这种方式效率低,尽可能的要精确范围

  在使用and查找时,一旦某个条件中有索引对应的字段,则先执行有索引的条件,是一种mysql的自动优化机制。自动选择定位范围内快的条件查询,针对的是多条件语句的and结果

  索引的计算:自断不要计算,后面的数据可以计算。where id*10=100,是错的;where id=10*10,是对的。

  =和in语句是可以乱序的,也是一种自动优化

优化神器:explain,在要进行查找的原句前加一个explain即可预执行,可以显示扫描的行数等信息

2.2 联合索引

  给多个字段合并加一个索引,一切的写法都不变:字段的写法是在括号内写多个,彼此用逗号隔开

  最左匹配特性:where要求最左边的字段必须有,数据区分度高的和数据长度小的字段房子括号里的前面,

  没有最左的字段则导致这个联合索引失效

2.3 覆盖索引

  只有一个字段的内容被取出来的索引语句结果

2.4 慢查询日志

  设置时间,查看、记录查询速度慢的语句

原文地址:https://www.cnblogs.com/shachengcc1/p/11444212.html