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多表关联查询效率高点还是多次单表查询效率高,为什么?