是什么导致MySQL数据库速度非常慢?

是什么导致MySQL数据库速度非常慢?,mysql,performance,innodb,Mysql,Performance,Innodb,我试图弄明白为什么MySQL数据库在实时服务器上异常缓慢。从表中删除一行(仅少于100行)可能需要1秒到20秒的时间。我检查了正在运行的进程,看不到任何会占用所有CPU或内存的内容 此外,该网站还没有推出,所以只有我在上面 在这些情况下,数据库速度如此缓慢的原因是什么?有没有办法诊断这种问题 在这些情况下,数据库速度如此缓慢的原因是什么?有没有办法诊断这种问题 你确定是DB慢了吗 使用命令行连接到服务器,启动mysql,然后从那里运行一些示例查询。如果它的速度足够快(这是应该的,除非你疯狂地交换

我试图弄明白为什么MySQL数据库在实时服务器上异常缓慢。从表中删除一行(仅少于100行)可能需要1秒到20秒的时间。我检查了正在运行的进程,看不到任何会占用所有CPU或内存的内容

此外,该网站还没有推出,所以只有我在上面

在这些情况下,数据库速度如此缓慢的原因是什么?有没有办法诊断这种问题

在这些情况下,数据库速度如此缓慢的原因是什么?有没有办法诊断这种问题

你确定是DB慢了吗

使用命令行连接到服务器,启动mysql,然后从那里运行一些示例查询。如果它的速度足够快(这是应该的,除非你疯狂地交换或者有无数时髦的触发器),你可以安全地消除SQL的罪魁祸首。如果没有,则可能是您的模式、数据库配置(内存是否足够?)或服务器(RAM是否损坏?)存在问题

缓慢的另一个原因可能是延迟。示例:

  • 进行DNS查找所需的时间(例如,有时连接到127.0.0.1比连接到本地主机更快)

  • 由于数据库位于单独的服务器上而导致的延迟(特别是如果数据库位于世界的另一端)

  • 如果涉及BLOB,则从DB检索结果所需的时间

  • 非常慢的NSF:

  • 等等


可能属于dba.stackexchange。com@JW웃, 这是我的第一个猜测,所以我已经索引了所有有意义的列,但是仍然很慢。我得到的20秒查询是在那之后(不是说索引使它变慢了),在一个小表上,有一个简单的“delete from table where id=123”;除非你有一些效率极低的删除查询依赖于多个嵌套的in-select之类的东西,否则这不会很糟糕。你是在从测试网站(在另一台服务器上)删除吗?如果是这样,请通过命令行或工作台直接在MySQL服务器上尝试
DELETE
,看看它是否也很慢。它可能只是两台服务器之间的管道。您使用的是什么数据库引擎?迈萨姆?INNODB?