mysql 计算距离 性能_Mysql在非常大的表上计算性能

面对一个超过1亿行的InnoDB表,博主在计算外键条件下的行数时遇到了性能问题。初步测试显示,带有LIMIT的COUNT(*)操作耗时16秒,而只查询主键则只需0.6秒。尝试了SQL_NO_CACHE选项后,性能并未显著提升。已对MySQL进行了一些Innodb相关的配置调整,但仍然寻求更优解决方案。
摘要由CSDN通过智能技术生成

我在Innodb有一张超过1亿行的表。

我必须知道外键是否超过5000行= 1。

我不需要确切的数字。

我做了一些测试:

SELECT COUNT(*) FROM table WHERE fk = 1 => 16秒

SELECT COUNT(*) FROM table WHERE fk = 1 LIMIT 5000 => 16秒

SELECT primary FROM table WHERE fk = 1 => 0.6秒

我将拥有更大的网络和治疗时间,但它可以超载15.4秒!

你有更好的主意吗?

由于

编辑:[添加了OP的相关评论]

我尝试了SELECT SQL_NO_CACHE COUNT(fk)FROM表WHERE fk = 1但是耗时25秒

使用Mysql Tuner为Innodb调整了Mysql。

CREATE TABLE table ( pk bigint(20) NOT NULL AUTO_INCREMENT,

fk tinyint(3) unsigned DEFAULT '0',

PRIMARY KEY (pk), KEY idx_fk (fk) USING BTREE )

ENGINE=InnoDB AUTO_INCREMENT=100380914 DEFAULT CHARSET=latin1

DB Stuff:

'have_innodb', 'YES' 'ignore_builtin_innodb', 'OFF' 'innodb_adaptive_

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值