当前位置: 首页 > 面试题库 >

mysql计数性能

漆雕升
2023-03-14
问题内容
从mytable中选择count(*);
从mytable中选择count(table_id); // table_id是primary_key

这两个查询在具有1000万行的表上运行缓慢。我想知道为什么为什么从mysql保留所有insert,update和delete更新的计数器变得不容易?
有没有办法改善这个查询?我使用了说明,但并没有太大帮助。


问题答案:

正如cherouvim在评论中指出的那样,它取决于存储引擎。

MyISAM 确实会保留表行的计数,并且由于MyISAM支持的唯一锁是表锁,因此可以保持准确。

InnoDB 但是支持事务,因此需要进行表扫描以对行进行计数。

http://www.mysqlperformanceblog.com/2006/12/01/count-for-innodb-
tables/



 类似资料:
  • 问题内容: 我有这张桌子: 电影可以具有多种流派,因此ID并非特定于流派,而是多对多关系。我想要查询以找到正好具有4种流派的电影总数。我目前的查询是 但是,这会返回4而不是总和的列表。如何获得总和而不是清单? 问题答案: 一种方法是使用嵌套查询: 内部查询将获取所有具有完全4种类型的电影,然后外部查询将计算内部查询返回的行数。

  • 问题内容: 我有一个像这样的mysql表: 当访问者访问该网站时,它将其访问者ID和页面ID存储为一行。 我试图提取恰好X次访问该网站的访问者数量。(用于图表)。因此有多少人只访问一页,有多少人访问了2页… 到目前为止,我有: 但是我不知道该如何进行计数。 可以作为mysql查询吗? 编辑: 我已经添加了答案。 问题答案: 我可以这样解决: 这一点很重要。

  • 问题内容: 我创建此代码是为了允许我计算表中的行数。但是,我无法返回计数的数字,并显示一条错误消息:“无法从结果类型为void的方法返回值”。有人可以告诉我我的错误在哪里吗?非常感谢! 问题答案: 尝试下面的代码 以下是错误 应该 要计算总行数,应使用查询 如有任何问题,请通知我。

  • 事实: 专用服务器,4核,16GB MySQL 5.5.29-0Ubuntu0.12.10.1-log-(Ubuntu) 一个表,1.9百万行,并且还在增长 查询 你知道怎么加快那东西的速度吗?“

  • 主要内容:一般业务系统运行流程图,一台 4 核 8G 的机器能扛多少并发量呢?,高并发来袭时数据库会先被打死吗?,8 核 16G 的数据库每秒大概可以抗多少并发压力?,数据库架构可以从哪些方面优化?,总结今天给大家分享一个知识点,是关于 MySQL 数据库架构演进的,因为很多兄弟天天基于 MySQL 做系统开发,但是写的系统都是那种低并发压力、小数据量的,所以哪怕上线了也就是这么正常跑着而已。 但是你知道你连接的这个 MySQL 数据库他到底能抗多大并发压力吗?如果 MySQL 数据库扛不住压力

  • 表名称包含一列 目标是计算重复次数以得到以下结果 如何做到这一点?