提高 MySQL 性能

Posted

技术标签:

【中文标题】提高 MySQL 性能【英文标题】:Improve MySQL Performance 【发布时间】:2016-10-07 19:41:16 【问题描述】:

信息: mysql 社区 5.7.12 64 位

编程语言: Python 3.5

mysqld.cnf: Mysqld.cnf

“显示变量”的结果 show variables

说明: - 我有 200 000 个任务。 - 我用 500 个线程处理这些任务,每个任务一个,当一个线程完成时,另一个任务开始。这样做的目的是运行的线程不要超过 500 个。 - 我正在为每个线程创建一个连接。 (pymysql) - 这个线程中的每个线程都会在查询“插入忽略”的情况下对表进行大约 350 次插入。 - 这是在一个有 12 列的表中的非常基本的插入。

我有一个具有以下规格的服务器: 所以:Ubuntu 16.04 LTS 内存:32 GB 处理器:6 核 2.66 GHz 处理器数量:2 硬盘:10K RPM SAS 2.5" 虚拟内核:24 个内核。

我遇到的问题是在数据库中进行插入需要花费大量时间,每个线程平均需要 1000 秒。

我该如何改进呢?带着这个问题,我把mysqld.cnf的链接和show variables y csv格式的结果放了。

请给点建议?

谢谢!

【问题讨论】:

你最好提供代码片段 你可以用多插入语法做小批量而不是 350 个单独的插入吗? Jared Beekman,我可以试试。今晚我将对其进行测试并赞扬结果。 【参考方案1】:

感谢 Jared Beekman 的评论,我能够对此进行优化。 我将所有查询放在一起,结果是处理速度快了 100 倍。

【讨论】:

以上是关于提高 MySQL 性能的主要内容,如果未能解决你的问题,请参考以下文章

提高mysql查询的性能

30分钟帮助你提高mysql性能设计

30分钟帮助你提高mysql性能设计

提高mysql数据库性能

提高 MySQL 性能

视图的索引字段是不是会提高 MySQL 的性能?