mysql - 某些查询的Mysql读取副本速度慢
问题描述
我们在 AWS RDS 中使用 mysql 进行了主从设置。对于这两个实例,我们都有一个db.m4.xlarge
。其中一个表在只读副本上的执行速度非常慢。
表- user_exercises
表大小- 3.9GB
行- 273499
查询- 从 user_exercises 中选择 count(*);
该表只有一个主键作为索引。在主服务器上,它需要 < 0.1 秒。在只读副本上它永远运行。
解决方案
- 查询缓存是否打开?这或许可以解释为何 Primary 运行得如此之快。
- 在一些小列上添加二级索引将加快查询速度。是的,这是一个杂项——优化器会选择最小的索引来做
SELECT COUNT(*)
. - 3.9GB/273K——听起来好像表格有一个大文本列?
推荐阅读
- css - Angular ::ng-deep 不能以全局方式工作
- excel - 应用 IF()、ISNUMBER() 和/或 SEARCH() 从字符串中提取文本
- django-rest-framework - 如何在 DRF 的一个视图中使用多个分页类
- python - 如何从有监督的多标签机器学习模型中获得“无标签”?
- javascript - 单击按钮后如何将svg转换为base64
- list - 在列表理解中随时随地更新列表的工作
- python - 使用python从html页面中包含的多个表中解析一个表
- docker - 通过 'docker run -e MY_VAR=value' 将 ENV var 传递给 entrypoint.sh?
- git - Travis CI 子模块和多个 .travis.yml 文件
- go - 同一端口上的不同身份验证机制(用于 grpc 的 TLS 和用于 REST 的授权)