首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在MySQL中控制会话并发?

如何在MySQL中控制会话并发?
EN

Stack Overflow用户
提问于 2017-09-15 16:40:20
回答 1查看 285关注 0票数 0

我有max_connections = 1000的mariadb。应用程序堆栈打开到数据库的450个连接,并且它被设计为高度并发。工作负载主要是插入/更新。当通过进行监视时,我注意到在数据库中同时执行的活动查询不超过11个。在我的例子中,我认为有些mysql设置会阻止更多的并发性,但我不知道它们是什么。控制并发性的mysql参数集完全令人困惑,很难看出其中的清晰性。我有这个:

代码语言:javascript
复制
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持久性磁盘。

最后一个参数被贬值(根据我的研究)。应该更改什么以增加mysql中的更多并发性?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-09-15 16:53:49

关于thread_concurrency:

这个变量被弃用,并在MySQL 5.7中被删除。除非是针对Solaris 8或更高版本,否则您应该在看到MySQL配置文件时从它中删除它。

所以,别费心改变它了。

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

你在应用程序中看到了什么意外的延迟吗?我怀疑不是。

您是否比其他查询更经常地看到某些特定的查询?是否有超过“2”的Time出现?如果是的话,让我们看看查询,加上SHOW CREATE TABLE

是否有任何PROCESSLIST条目表示Locked。如果是这样的话,请使用最大的Time (不是Locked )查找查询,并研究为什么它运行这么长时间。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/46244182

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档