MySQL INNODB的性能很差

时间:2013-02-21 16:09:58

标签: mysql

最近我的mysql 5.5.27表现非常糟糕。我已经改变了配置中的所有内容,试着看看它是否有所作为,没有运气。我正在锁定桌子不断达到每桌6-9锁。我的选择查询需要300sec-1200sec。

将所有内容移至PasteBin,因为它超过了30k字符 http://pastebin.com/bP7jMd97

SYS活动

90%UPDATESINSERTS 10%SELECT

我的慢查询日志已备份。下面我有我的mysql信息。如果有任何我想补充的内容,请告诉我。

Server version          5.5.27-log
Protocol version        10
Connection              XX.xx.xxx via TCP/IP
TCP port                3306
Uptime:                 21 hours 39 min 40 sec



Uptime: 78246  Threads: 125  Questions: 6764445  Slow queries: 25  Opens: 1382  Flush tables: 2  Open tables: 22  Queries per second avg: 86.451

显示表格

+----------+---------------+--------+-------------+
| Database | Table         | In_use | Name_locked |
+----------+---------------+--------+-------------+
| aridb   | ek            |      0 |           0 |
| aridb   | ey            |      0 |           0 |
| aridb   | ts            |      4 |           0 |
| aridb   | tts           |      6 |           0 |
| aridb   | tg            |      0 |           0 |
| aridb   | tgle          |      2 |           0 |
| aridb   | ts            |      5 |           0 |
| aridb   | tg2           |      1 |           0 |
| aridb   | bts           |      0 |           0 |
+---------+--------------+-------+------------+

我碰到了一堵砖墙,需要一些指导。谢谢!

1 个答案:

答案 0 :(得分:2)

从查看日志看起来似乎问题(因为我很确定你知道)是由于在更新/选择/插入数据量时存在大量锁定而且可能存在同时。

如果不先了解许多您未提供的信息(例如表格大小,架构,硬件,配置,拓扑等),那么很难提供性能提示 - 所以可能不是这么广泛的最佳位置问题无论如何!

我会尽可能保持答案的通用性,但可以查看或尝试的事情可能是:

  1. 运行Explain选择查询,确保他们有选择地查找数据,不执行全表扫描或浪费大量数据
  2. 让服务器执行此操作的插入和更新,但为报告创建read replica,这样数据就不会被锁定
  3. 如果您一次更新多行,请考虑提供updating with a limit以阻止大量数据被锁定
  4. 如果你能够delay the inserts来缓解压力
  5. 查看硬件修复程序,例如固态磁盘的IO性能和更多内存,以便更多索引/数据可以保存在内存中或具有更大的缓冲区