添加索引的 好处
提高数据的读取速度,提高项目的并发能力和抗压能力
索引的分类
-
主键索引 (主键自增,自增锁)
-
唯一索引 (索引列所有值只出现一次,值可以为空)
-
普通索引 (值可以为空,没有唯一的限制)
回表查询:即先定位主键值,再根据主键值定位行记录
索引覆盖:索引覆盖是一种避免回表查询的优化策略。具体的做法就是将要查询的数据作为索引列建立普通索引(可以是单列索引,也可以一个索引语句定义所有要查询的列,即联合索引),这样的话就可以直接返回索引中的的数据,不需要再通过聚集索引去定位行记录,避免了回表的情况发生。 -
全文索引(Elasticsearch,Solr,Lucene)
-
组合索引
索引维护
尽量使用自增主键作为索引
执行计划
show processlist 查看现在的连接
优化器
不同的执行方式对SQL语句的执行效率影响很大
RBO:基于规则的优化
CBO:基于成本的优化
mysql索引的面试题
转采于