任何人都可以告诉我,在查找表格的行数时,他在MySQL中的哪个更好的appraoch:是否更好做
SELECT COUNT(*) FROM TABLE_NAME
或在TABLE
的表INFORMATION_SCHEMA
中查找行数?
这是计算页面分页计数的常用操作吗?
我应该补充说,表格最多只有几千行。
由于
Martin O'Shea。
答案 0 :(得分:18)
在MyISAM
中,此查询:
SELECT COUNT(*)
FROM TABLE_NAME
是即时的,因为它保存在表格元数据中,因此几乎可以自由发出此查询,并且它将始终获得正确的结果。
在InnoDB
中,此查询会逐行计算行数,这可能需要一些时间。
因此,如果您不需要COUNT(*)
的确切值,则可以查询INFORMATION_SCHEMA
。
答案 1 :(得分:1)
如果您发现SQL_CALC_FOUND_ROWS
太慢,我还会考虑使用SELECT FOUND_ROWS()
和COUNT(*)
。