增加与 mysql 的连接会导致同一查询中的每个发送数据时间增加



>在php(Supervisor)中分叉多个进程。每个创建与同一Mysql DB的连接并并行执行相同的SELECT查询(Gearman)。如果我增加进程的数量(即相同的时间连接)并且更多相同的查询将并行运行,则会导致每个进程中的SHOW PROCESSLIST中的发送数据时间增加。 这是一个事务级别为"未提交"的简单选择。是一些 mysql 配置问题吗?还是选择查询导致表锁定?或者也许完全扫描可以?

服务器:Ubuntu 16.04.2 LTS.1 CPU内核。MySQL 5.7.17。innodb_buffer_pool_size 12 GB

它使用 32 个表,包括自连接(13 个唯一表),在一个连接中在 3 秒内执行

得看看细节。 听起来像是索引缺失或不足。

这是"实体-属性-值"吗? 如果是这样,您是否遵循了此处的提示:http://mysql.rjweb.org/doc.php/index_cookbook_mysql#speeding_up_wp_postmeta

InnoDB不会锁定表。 但它可以进行表扫描,这将锁定所有行。 同样,听起来像是错误的索引和/或查询公式。

请提供所有 13 张桌子的SHOW CREATE TABLE,以及SELECTEXPLAIN SELECT ...

如果在后台进行某种写入,则可能会影响SELECT,即使在READ UNCOMMITTED模式下也是如此。

至少 16GB 内存?

分叉多少个进程? 您有多少个 CPU 内核?

相关内容

  • 没有找到相关文章

最新更新