数据库查询优化问题,有没有老哥懂的?

2023-02-01 17:05:41 +08:00
 cy1027

SELECT id FROM table_name;--一秒钟出结果,我的表大概三十万数据 select count(id) from table_name;--超过二十秒,没等它跑完 select count() from table_name;--同上 id 是主键,数据库里有很多列,有大量字符串,大概占几个 g 的磁盘。 我比较不理解,为什么只查 id 可以很快,但是对 id 计数就会很慢,如果说 count ()要扫描全表,那 count ( id )不应该只比第一个稍微慢一丢丢么?

3063 次点击
所在节点    程序员
41 条回复
wangxin3
2023-02-03 16:14:08 +08:00
@encro #38 原文:“@wangxin3 这个特性好像是 20 年前的 myisam 引擎的,不是 innodb 引擎的。”
======
回复:是 innodb 的。myisam 引擎是把 count 数目保存在磁盘上的,如果没有 where 条件,获取速度是非常快的。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/912315

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX