我试图弄清楚为什么MySQL数据库在实时服务器上异常缓慢。从表中删除一行(只有少于100行)可能需要1秒到20秒之间的任何时间。我已经检查了正在运行的进程,看不到任何会占用所有CPU或内存的东西。
此外,该网站尚未推出,所以只有我就可以了。
在这些情况下,数据库如此缓慢的原因可能是什么?有没有办法诊断出这类问题?
答案 0 :(得分:2)
在这些情况下,数据库如此缓慢的原因可能是什么?有没有办法诊断出这类问题?
你确定数据库速度慢吗?
使用命令行连接到您的服务器,启动mysql,然后从那里运行一些示例查询。如果它在那里足够快(它应该,除非你像疯了一样交换或者有很多时髦的触发器),你可以安全地消除SQL作为罪魁祸首。如果没有,您的架构,数据库配置(它是否有足够的内存?)或您的服务器(RAM是否损坏?)可能存在问题。
缓慢的另一个原因可能是延迟。例子:
进行DNS查询所需的时间(例如,有时连接到127.0.0.1比连接到localhost更快)
由于数据库位于单独的服务器上而导致滞后(特别是如果数据库位于世界的另一端)
如果涉及blob,则需要从数据库中检索结果所需的时间。
非常慢的NSF:
http://lists.freebsd.org/pipermail/freebsd-fs/2013-April/017125.html
等