mysql统计查询count的效率优化问题
涉及到一个问题
就是 mysql的二级索引的问题,聚簇索引和非聚簇索引 引申地址:https://www.cnblogs.com/sxdcgaq8080/p/9529489.html
有一个结论是:
采用 secondary index 查询要比用 primary key 查询来的快很多。那么,为什么用 secondary index 扫描反而比 primary key 扫描来的要快呢?
我们就需要了解innodb的
clustered index【聚簇索引】 和 secondary index 【二级索引】之间的区别了。
>innodb 的 clustered index 是把 primary key 以及 row data 保存在一起的, 即[主键]--->[整条数据]
>secondary index 则是单独存放,然后有个指针指向 primary key。 即[二级索引]--->[主键] 因此,需要进行 count(*) 统计表记录总数时,利用 secondary index 扫描起来,显然更快。