mysql 高效率查询背景

Posted soft.push("zzq")

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了mysql 高效率查询背景相关的知识,希望对你有一定的参考价值。

       说起mysql查询效率问题,就无法绕开索引问题,而innodb索引是mysql存储引擎中的重中之重,innodb索引包括“主键索引(聚集索引)”也就是实际数据和主键数据存储在一起的索引。innodb除了主键索引以外就是二级索引,二级索引叶子结点的数据区存储的是主键,mysql每个数据页面有16k大小,innodb在执行插入数据后就已经根据唯一键将数据页排好顺序,索引结构暂时不做过多解释。

那我们新建二级索引的时可以根据“近1”原则创建,创建是参考sql语句:select  COUNT(DISTINCT(CONCAT(date,name)))/count(*) ;

按照创建索引涉及的列去重后的总数和数据总数做对比,结果越趋近于1,则索引查询效果越好。因为越趋近于0说明数据差距不大,所扫描的数据代价越高。

mysql查询部分包括,(1)sql执行器,(2)sql优化器。

sql优化的执行过程可以先开启sql优化日志后,到information_schema.OPTIMIZER_TRACE这个表中进行查询。

 

以上是关于mysql 高效率查询背景的主要内容,如果未能解决你的问题,请参考以下文章

mysql随机查询记录的高效率方法

MySQL的in和or的效率问题

mysql分页原理和高效率的mysql分页查询语句

MySQL多表关联查询效率高点还是多次单表查询效率高,为什么?

mysql中Mysql模糊查询like效率,以及更高效的写法和sql优化方法

mysql中Mysql模糊查询like效率,以及更高效的写法和sql优化方法