MySQL - 慢查询 - wp_options 表。网站无法处理流量

标签 mysql database linux amazon-web-services amazon-ec2

经过几天的研究,我在 c1.medium 实例、Amazon Linux 和 db.m1.medium 实例上放置了一个网站和 MySQL 数据库。 RDS 正在运行 MySQL 版本 5.6.13。我为数据库实例分配了 100 GB,并将提供的 IOPS 设置为 1,000。该网站基于照片,允许用户上传,在高峰时段有 400 多名访问者。

启用慢速查询日志记录后,我发现问题似乎出在 wp_options 表上,在查看 phpmyadmin 时,我发现该表包含有关 WordPress 插件和主题的信息。例如:

设置时间戳=1390186963;

SELECT option_name, option_value FROM wp_options WHERE autoload = 'yes';

时间:140120 3:04:17

用户@主机:xxxx ID:744

Query_time:49.248039 Lock_time:0.000180 Rows_sent:485 Rows_examined:538

在试验了一些数据库参数后,我将 query_cache_type 设置为 1,将 query_cache_size 设置为 64MB。我希望启用缓存会阻止数据库重复调用 wp_options 表,但不幸的是,情况似乎并非如此。有什么建议么?下一步要采取什么步骤来找出这个问题的原因?在查看 CloudWatch 指标时,硬件似乎足够了,但也许不够?

以下是两个实例的 CloudWatch 指标的屏幕截图。

EC2: EC2

数据: RDS

最佳答案

除非

Query_time: 49.248039 Lock_time: 0.000180 Rows_sent: 485 Rows_examined: 538

是一个复制/粘贴错误,这里有一些非常非常错误的地方。从 538 行中选择 485 行需要 50 秒!我可以想象,这样做的唯一原因是您在 option_value 中有一些非常长的列,这是一个长文本。尝试

SELECT option_name, length(option_value) FROM wp_options WHERE autoload = 'yes';

检查这里是否出现问题,例如(如您所说的是图片网站)图像或视频文件,其大小必须至少为几十 GB 才能产生您的效果,潜入主题配置。

如果可以,mysqldump() 您的数据库,将转储导入本地数据库,然后在您的本地副本上尝试相同的选择。这可能有助于确定是数据有问题,还是您的 Amazon 实例的某些人为限制设置得太低。

关于MySQL - 慢查询 - wp_options 表。网站无法处理流量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21318185/

相关文章:

php - 根据另一个表的匹配结果从一个表中选择行

linux - 在 Eclipse CDT 中的 gdb 中调用时,如何使调试的应用程序找到共享库?

sql-server - 连接字符串中未遵守超时

mysql - 使用相关表的正确方法和可能的解决方法?

php - echo 未传递 var 已传递 while

mysql - 如何将下面的 SQL 查询转换为 Laravel 查询?

python - SQLAlchemy (psycopg2.OperationalError) fe_sendauth : no password supplied

linux - 授予每个人对此设置的读取权限有哪些安全风险?

linux - 函数在 bash 中没有按预期工作

php - 在 PHP 站点上实现权限数据库结构以限制多个级别的访问