大佬教程收集整理的这篇文章主要介绍了与本地服务器上的 MariaDB 相比,RDS MySql 上的 COUNT WHERE 性能较慢,大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
我正试图弄清楚该看什么,以试图理解为什么我在 AWS RDS MysqL 数据库上看到 COUNT WHERE 查询的性能比在本地 CentOS 上运行的 MariaDB 数据库上的相同查询慢得多服务器。
查询看起来像:
SELECT COUNT(serial) FROM devices
WHERE device_family="foo"
AND serial > 1000
AND serial < 10000000;
在本地实例上,即使设备系列有 20M 左右的记录,这样的本地实例查询也会在短时间内返回。在 RDS 上需要很多分钟。
我的数据库经验有限,我想知道如何理解这里发生的事情。
RDS 实例为 db.m5.xlarge,4 个 vcpu,16 gb ram,Provisioned IOPS (SSD) 1000 IOPS。我将 IOPS 提高到 10K,但只看到了适度的改进。
相关表中的数据是从本地服务器迁移到 RDS 的,本质上是一样的:150M 记录,包含少量字段,没有关系或外键(目前是 DB 中唯一的表)。
索引(SHOW INDEXES FROM)是一致的。
不确定还有什么是相关的或从哪里开始?
本地实例和 RDS 实例之间可能存在差异的原因有很多。除了在两种环境中对查询运行 EXPLAIN
外,您还可以考虑添加以下索引:
CREATE INDEX idx ON devices (device_family,serial);
如果使用此索引,将完全覆盖 WHERE
子句并应加快查询速度。您也可以尝试交换索引中两列的顺序。
以上是大佬教程为你收集整理的与本地服务器上的 MariaDB 相比,RDS MySql 上的 COUNT WHERE 性能较慢全部内容,希望文章能够帮你解决与本地服务器上的 MariaDB 相比,RDS MySql 上的 COUNT WHERE 性能较慢所遇到的程序开发问题。
如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。