gpt4 book ai didi

mysql - MySQL中如何控制 session 并发?

转载 作者:行者123 更新时间:2023-11-29 10:36:57 26 4
gpt4 key购买 nike

我的 mariadb max_connections = 1000。应用程序堆栈打开了 450 个到数据库的连接,并且它被设计为高度并发。工作负载主要是 INSERT/UPDATE。通过 show processlist 进行监控时,我注意到数据库中同时执行的事件查​​询不超过 11 个。我认为某些 mysql 设置在我的情况下阻止了更多并发性,但我不知道它们是什么。控制并发的 mysql 参数集完全令人困惑,很难看清其中的内容。我有这个:

MariaDB [(none)]> show variables like '%concurr%';
+----------------------------+--------+
| Variable_name | Value |
+----------------------------+--------+
| concurrent_insert | ALWAYS |
| innodb_commit_concurrency | 0 |
| innodb_concurrency_tickets | 5000 |
| innodb_thread_concurrency | 32 |
| thread_concurrency | 10 |
+----------------------------+--------+

24 个缓冲池实例,每个实例 2GB 和慢速 GCP SSD 永久磁盘。

最后一个参数已折旧(基于我的研究)。应该改变什么来增加mysql的并发性?

最佳答案

关于线程并发:

This variable is deprecated and is removed in MySQL 5.7. You should remove this from MySQL configuration files whenever you see it unless they are for Solaris 8 or earlier.

所以,不用费心去改变它。

同时,我想说你的观察结果是“正常的”。也就是说,您的 450 个连接正在执行非常快的查询,因此当您查看时,您碰巧只看到中间有 11 个连接。

您是否发现应用程序出现任何意外延迟?我怀疑不是。

您是否比其他查询更频繁地看到某些特定查询?是否有任何显示的 Time 超过“2”?如果有的话,让我们看看查询,加上 SHOW CREATE TABLE

是否有任何PROCESSLIST条目显示Locked。如果是这样,请查找具有最大TimeLocked的查询,并调查其运行时间如此之长的原因。

关于mysql - MySQL中如何控制 session 并发?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46244182/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com