MySql优化查询

时间:2011-01-07 19:13:55

标签: mysql

我的网站出现问题,其中特定网页在我的实时网站上返回数据大约需要15秒,在我的暂存网站上需要2秒。他们都使用相同的数据库备份。

然后我意识到,对于我的登台数据库,我删除了旧的登台数据库并将转换后的备份恢复为新的登台数据库。

但是,对于实时数据库,我直接在实时数据库上运行数据库转换。

然后我为我的实时数据库执行了同样的操作并删除了现有的数据库,然后从转换后的备份中恢复它,瞧,这个特定网页的时间从15秒减少到2秒。

我的问题是为什么?我唯一想到的是,索引可能变得太大了,通过删除数据库,重新创建了索引?\

我远吗?还有其他原因吗?此外,如果是这种情况,我将来如何在不删除数据库的情况下解决这个问题?

由于

3 个答案:

答案 0 :(得分:1)

尝试查看解释计划,或者您的统计信息需要更新。很难在高层次上确定这类事物,因为服务器之间可能会发生很多不同的事情。

答案 1 :(得分:0)

是高写入或高读取问题(或两者)数据库吗?

您在数据库中执行了哪些“转换”,而您在暂存数据库中没有这样做?

你或许可以稍微具体一点了吗?

也许读过这本书http://www.amazon.com/High-Performance-MySQL-Jeremy-Zawodny/dp/0596003064(非常好)(我不是作者)。

答案 2 :(得分:0)

很容易就是当你重建表时,记录按顺序放置,将有用的记录放在彼此附近,这样查询就不需要那么多的磁盘读取。如果要检查,MySQL统计信息可以显示读数。