【问题标题】:Mysql query taking too much time to load on production of AWS serverMysql 查询在 AWS 服务器的生产中加载时间过长
【发布时间】:2019-06-04 09:33:15
【问题描述】:

我是 AWS RDS 的新手

我在 AWS EC2 实例上有测试服务器,Mysql 也安装在同一个实例中。在这个测试服务器应用程序中,工作方式很好,但是

完成后,我们将应用程序移到生产实例上,而对于生产,我们使用 RDS 数据库实例来使用 Mysql。

问题是
PHP 和 RDS Mysql 连接成功,但是当我们尝试加载页面(有超过 10000 行 mysql)时,加载页面需要太多时间。

我使用简单的查询来获取数据,例如。

select 
    (column_names with , comma) 
from 
    tabel_name t 
left join table_name2 t2 on t2.id=t.id 
where 
   t2.id = '1' and 
   t.type='PROD'  

相同的查询在其他 EC2 实例和内置 mysql 上运行良好。

AWS RDS 详细信息
Screenshot of RDS details

EC2 实例可用区是可用区 ap-south-1av 和 RDS DB 的区域是可用区 ap-south-1b

请帮我解决这个问题。
TIA,

【问题讨论】:

  • EXPLAIN 从开发和生产运行时对查询有何看法?
  • 您的查询期望返回多少行。您说“超过 10,000 个”——是 100,000 个吗?是 1,000,000 吗? 10M? “加载时间过长”是什么意思? 10秒?分钟?小时?运行查询时从数据库中提取了多少数据?你的网络绑定了吗?等

标签: php mysql amazon-web-services amazon-ec2 amazon-rds


【解决方案1】:

确保您在连接中涉及的列上有正确的索引

确保 id 是一个字符串,否则不要使用引号(这通常意味着不使用索引)

select (column_names with , comma) 
from tabel_name t 
left join table_name2 t2 on t2.id=t.id 
where t2.id = 1 and t.type='PROD'  

(加载 10000 行在实际应用中似乎很有用)

【讨论】:

  • 是的,我已经设置了索引。我尝试在没有 RDS 实例的情况下将相同的东西放入其他 EC2 测试服务器(在此我安装了 mysqld)
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-05-22
  • 2014-05-30
  • 1970-01-01
相关资源
最近更新 更多