關(guān)于mysql中innodb的count優(yōu)化問(wèn)題分享
一般采用二級(jí)索引去count:
比如:id 是pk aid是secondary index
采用
select count(*) from table where id >=0;
或
select count(*) from table;
效果是一樣的,都是默認(rèn)使用pk索引,且都要全表掃描,雖然第一種性能可能高一些,但是沒有明顯區(qū)別。
但是如果用secondary index
select count(*) from table where aid>=0;
則會(huì)快很多。
為什么用 secondary index 掃描反而比 primary key 掃描來(lái)的要快呢?這就需要了解innodb的 clustered index 和 secondary index 之間的區(qū)別了。
innodb 的 clustered index 是把 primary key 以及 row data 保存在一起的,而 secondary index 則是單獨(dú)存放,然后有個(gè)指針指向 primary key。
因此,需要進(jìn)行 count(*) 統(tǒng)計(jì)表記錄總數(shù)時(shí),利用 secondary index 掃描起來(lái),顯然更快。
而primary key則主要在掃描索引,同時(shí)要返回結(jié)果記錄時(shí)的作用較大。
- MySQL 大表的count()優(yōu)化實(shí)現(xiàn)
- MySQL中聚合函數(shù)count的使用和性能優(yōu)化技巧
- 聊聊MySQL的COUNT(*)的性能
- 詳解 MySQL中count函數(shù)的正確使用方法
- 淺談MySQL 統(tǒng)計(jì)行數(shù)的 count
- mysql count提高方法總結(jié)
- MySQL中無(wú)過(guò)濾條件的count詳解
- MySQL中count(*)、count(1)和count(col)的區(qū)別匯總
- mySQL count多個(gè)表的數(shù)據(jù)實(shí)例詳解
- MySQL COUNT函數(shù)的使用與優(yōu)化
相關(guān)文章
mysql5.7.24 解壓版安裝步驟及遇到的問(wèn)題小結(jié)
這篇文章主要介紹了mysql5.7.24 解壓版安裝步驟以及遇到的問(wèn)題 ,文中給大家提出了解決方案,需要的朋友可以參考下2018-11-11MySQL數(shù)據(jù)庫(kù)使用規(guī)范總結(jié)
本篇文章給大家詳細(xì)分類總結(jié)了數(shù)據(jù)庫(kù)相關(guān)規(guī)范,幫助大家發(fā)揮出數(shù)據(jù)庫(kù)的性能,感興趣的朋友可以了解下2020-08-08MySQL用戶和數(shù)據(jù)權(quán)限管理詳解
這篇文章主要為大家詳細(xì)介紹了MySQL數(shù)據(jù)庫(kù)管理中的用戶和數(shù)據(jù)權(quán)限管理,文中的示例代碼講解詳細(xì),對(duì)我們學(xué)習(xí)MySQL有一定幫助,需要的可以參考一下2022-08-08MySql日期查詢數(shù)據(jù)的實(shí)現(xiàn)
本文主要介紹了MySql日期查詢數(shù)據(jù)的實(shí)現(xiàn),詳細(xì)的介紹了幾種日期函數(shù)的具體使用,及其具體某天的查詢,具有一定的參考價(jià)值,感興趣的可以了解一下2023-01-01驗(yàn)證Mysql中聯(lián)合索引的最左匹配原則詳情
這篇文章主要介紹了驗(yàn)證Mysql中聯(lián)合索引的最左匹配原則詳情,文章圍繞主題展開詳細(xì)的內(nèi)容介紹,具有一定的參考價(jià)值,需要的小伙伴可以參考一下2022-08-08解讀mysql主從配置及其原理分析(Master-Slave)
在windows下配置的,后面會(huì)在Linux下配置進(jìn)行測(cè)試,需要配置mysql數(shù)據(jù)庫(kù)同步的朋友可以參考下。2011-05-05Windows系統(tǒng)下MySQL添加到系統(tǒng)服務(wù)方法(mysql解壓版)
這篇文章主要介紹了Windows系統(tǒng)下MySQL添加到系統(tǒng)服務(wù)方法,主要針對(duì)mysql解壓版,感興趣的朋友參考下吧2016-05-05