【发布时间】:2013-04-26 17:19:06
【问题描述】:
我试图找出 MySQL 数据库在实时服务器上异常缓慢的原因。从表中删除一行(只有少于 100 行)可能需要 1 秒到 20 秒之间的任何时间。我检查了正在运行的进程,看不到任何会占用所有 CPU 或内存的东西。
而且网站还没有启动,所以只有我在上面。
在这些情况下,数据库如此缓慢的原因可能是什么?有什么方法可以诊断这类问题吗?
【问题讨论】:
-
可能属于 dba.stackexchange.com
-
@JW웃,这是我的第一个猜测,所以我已经索引了所有有意义的列,但它仍然很慢。我得到的 20 秒查询是在那之后(不是说索引让它变慢了),在一个小桌子上,上面有一个简单的“从 id=123 的表中删除”。
-
即使没有定义索引,100 行也不会太可怕,除非你有一些非常低效的删除查询,它依赖于多个嵌套在选择中或其他东西。
-
您是否正在从测试网站(在另一台服务器上)删除?如果是这样,请通过命令行或 Workbench 直接在 MySQL 服务器计算机上尝试
DELETE,看看那里是否也很慢。它可能只是两台服务器之间的管道。 -
您使用的是什么数据库引擎?米萨姆? INNODB?
标签: mysql performance innodb