天天看點

Mysql Count函數(高性能MySQL)

作用:

        1.統計某列值的數量(統計非null)

        2.統計行數

                count統計非空列值的數量時,MySQL的優化器會自動轉成count(*)統計行數。

對于MyISAM存儲引擎來說

        insert、select是很快的,count對于沒有where條件的SQL統計是很快的。

優化:

SELECT COUNT(*) FROM user WHERE id>5 可用下面這條sql代替

SELECT (SELECT COUNT(id)  FROM sms ) - (SELECT COUNT(*) FROM sms WHERE id<=5)

對于InnoDB來說

        會全表掃描,資料越多花費的時間就越久,使用count(*)就行,沒必要使用count(1)\count(列名)。

優化:

       1. 如果對count數要求不高的話,可用使用EXPLAIN中的rows字段代替。

        2.水準分割、更換nosql資料庫等。

推薦書籍:高性能MySQL

繼續閱讀