我们的Mysql专用服务器盒总是有40-80左右的活动用户连接,所以查询速度很好,Cpu使用率很低。(约4-8核心从24个核心),但有时当一些wordpress“加入”查询运行,服务器速度缓慢和其他查询进入队列,因此服务器运行查询超过600-1000 /s。
以下是我认为引起问题的以下查询:
SELECT SQL_CALC_FOUND_ROWS WP_POSTS.ID FROM WP_POSTS INNER JOIN
WP_TERM_RELATIONSHIPS ON (WP_POSTS.ID = W
P_TERM_RELATIONSHIPS.OBJECT_ID) WHERE 1=1 AND (
WP_TERM_RELATIONSHIPS.TERM_TAXONOMY_ID IN ()我的问题;

与用户相关的简单流程列表:
| 1871506 | xhamster_gdgdgd | server6:48608 | xhamster_hehehe | Query | 456 | Sending data | SELECT SQL_CALC_FOUND_RO
WS wp_posts.ID FROM wp_posts INNER JOIN wp_term_relationships ON (wp_posts |
| 2467509 | kordgsmc_gsm | server6:37144 | kordgsmc_vb | Query | 22 | Waiting for table level lock | SELECT userid, username
FROM user
sWHERE userid IN (6295) |
| 2468708 | samseria_wp | server6:38899 | samseria_wp | Query | 23 | Sending data | SELECT SQL_CALC_FOUND_ROWS
wp_posts.ID FROM wp_posts INNER JOIN wp_term_relationships ON (wp_posts |
| 2469440 | samseria_wp | server6:39953 | samseria_wp | Query | 6 | Sending data | SELECT SQL_CALC_FOUND_ROWS
wp_posts.ID FROM wp_posts INNER JOIN wp_term_relationships ON (wp_posts |
| 2469825 | samseria_wp | server6:40542 | samseria_wp | Query | 23 | Sending data | SELECT SQL_CALC_FOUND_ROWS
wp_posts.ID FROM wp_posts INNER JOIN wp_term_relationships ON (wp_posts |发布于 2015-08-26 17:58:13
使用MyISAM,INSERT/UPDATE/DELETE将请求独占锁,并且必须等待任何SELECTs完成。如果在写入之后出现了另一个SELECT,那么它将被阻塞,等待写入获得其锁并完成其操作。
也就是说,一个简单的书写就能把你看到的烂摊子变成雪球。
更改为InnoDB可能会避免这个问题,因为锁是在行级别而不是在表级别进行的。
让我们看看您的EXPLAIN的SELECT (并提供一个没有语法错误)。再告诉我们桌子有多大。以及每个相关表的SHOW CREATE TABLE。
加快查询速度将有助于避免锁。
https://dba.stackexchange.com/questions/112052
复制相似问题