如何最有效地計算大表中的總行數?我有23萬行的表和下面的查詢需要對生產硬件30+秒:MySQL:如何高效地計算大表中的行數?
select count(*) from tablename;
看來,MySQL必須做一個表掃描,但它似乎並不像這應該是必要的。
如何最有效地計算大表中的總行數?我有23萬行的表和下面的查詢需要對生產硬件30+秒:MySQL:如何高效地計算大表中的行數?
select count(*) from tablename;
看來,MySQL必須做一個表掃描,但它似乎並不像這應該是必要的。
InnoDB中一個表的行數很慢。
另一方面,MyISAM將行計數作爲表的屬性,這使得您的查詢在MyISAM上非常快速。
對於MyISAM來說+1,有時InnoDB並不會削減它:P –
這就是您在InnoDB中爲遵守ACID付出的代價。 – Mchl
你有一個主鍵?桌上有什麼指標? –
@Jacob,真的很重要嗎?如果InnoDb存在,InnoDb將不得不計數23mi的PK或索引。 – Tocco
它可能在做索引掃描,但它仍然會很慢。 –