您如何调查MySQL上的争用问题

时间:2014-01-14 15:57:35

标签: mysql

我是网站开发人员,服务器管理员告诉我,mysql数据库存在争用问题。我想自己调查这些争用问题,看看它们是什么,但我不知道如何或在哪里寻找争用问题。请问你能告诉我在哪里看。我需要查看日志吗?如果是这样的话,我会在哪里找到它们?数据库是在Linux上运行的MySQL v5.1。我不确定是什么版本,因为我没有控制面板或ssh访问,但我的目标是今天就这样。

非常感谢

3 个答案:

答案 0 :(得分:2)

争用问题通常是一种说法存在锁定问题,这意味着查询处于锁定状态。 您需要识别它们并检查您的应用程序是否有解决方案。

当服务器忙时,您可以运行SHOW PROCESSLIST以查看当前锁定的查询。

SHOW OPEN TABLES还可以帮助您确定问题并another question posted here

答案 1 :(得分:1)

首先,您应该使用以下命令检查mysql是否正在运行。

mysqladmin -u root -p status

此命令将显示: -

Enter password:
Uptime: 4  Threads: 1  Questions: 62  Slow queries: 0  Opens: 51  Flush tables: 1  Open tables: 60  Queries per second avg: 15.200

同时检查错误类型: -

http://dev.mysql.com/doc/refman/5.5/en/privilege-system.html

答案 2 :(得分:0)

也许你应该启动,询问你的服务器管理员他/她看到了什么让他/她相信存在争用问题 - 他们比你更了解你的DBMS。通过你为这项服务支付费用的声音。

如果你说的是存储表的数据库引擎会有所帮助:这是迄今为止MySQL中争用的最关键问题。您可以通过从MyISAM切换到Innodb来解决您的问题。

  

我没有控制面板或ssh访问

IME现成的控制面板适用于(非常)基本的管理任务,但对此没什么用处。

我首先看一下慢查询日志。这应配置为记录所有查询 - 如果它没有告诉管理员您需要更改。查看哪些查询具有较高的锁定时间,然后识别执行查询的lonf导致高锁定时间。然后解决它们。