我知道如何在MySQL 5及更高版本的表中獲取行數。如何獲取表中的行數MySQL版本4不使用count(*)查詢?
MySQL的5
select table_rows from tables where table_name = 'tableName';
我想知道如何得到這個在MySQL 4,因爲COUNT(*)查詢需要在大表4〜5分鐘。
我知道如何在MySQL 5及更高版本的表中獲取行數。如何獲取表中的行數MySQL版本4不使用count(*)查詢?
MySQL的5
select table_rows from tables where table_name = 'tableName';
我想知道如何得到這個在MySQL 4,因爲COUNT(*)查詢需要在大表4〜5分鐘。
SELECT COUNT(*)
告訴數據庫引擎仍然遍歷單個字段或每條記錄。既然你只關心原材料的行數,你可以嘗試@ DJ2的建議,並做
SELECT COUNT(1)FROM <表名>
但我不知道如果獲得更好的性能通過查詢聚簇索引來計算主鍵。
SELECT COUNT(<的PrimaryKey >)FROM <表名>
INFORMATION_SCHEMA包含table_rows不適用於MySQL的4.0。您最好的選擇是通過在索引密鑰上執行count()來優化您的count()。
嗨, 謝謝大家的回覆。我想要生成模式分析報告。它將遍歷所有模式並獲取表計數以生成該報告。我不知道哪一列是主鍵(或哪一列是索引的)。 – kannanrbk 2011-12-23 19:18:13
你也可以做:select count(1)from –
dj2
2011-12-22 18:27:49
更好.... – 2011-12-22 18:36:33