我们有一个运行LAMP的服务器,其中包含一些zencart站点。 在尝试查看其中一个网站的订单时发现问题,并且超时。 现在当我这样做时:
"select * from orders"
整个事情冻结,所以:
SHOW PROCESSLIST
现在订单表中应该有大约42000个订单,不要那么大。 任何人都可以推荐任何好的诊断技术来弄清楚什么是错误的?
当你“解释select * from orders”查询时会发生什么? 和“select计数( )从订单”? 解释说明应该让你对你的查询发生什么有一些了解(它解释了服务器将如何执行它并帮助你诊断瓶颈) ,如果你提到的42000仍在这个范围内,count( )会让你知道。
我认为你的索引有问题。 你能试一下吗
OPTIMIZE TABLE `orders` CHECK TABLE `orders` REPAIR TABLE `orders`
你也可以尝试倾销和重新创build。
pipe理解决这个问题。 使用MySQL查询浏览器,我可以看到当前正在运行的线程。 有几个密集的MyIsam quaries由于某种原因locking了表。 我杀了这些,积压在几秒钟内清除。 恢复正常。 WOOP!