我的网站有问题,一个特定的页面在我的live网站上需要大约15秒的时间来返回数据,在我的临时网站上需要2秒。不过,它们都使用了相同的数据库备份。
然后我意识到,对于我的临时数据库,我已经删除了旧的临时数据库,并将转换后的备份恢复为新的临时数据库。
但是,对于实时数据库,我直接在实时数据库上运行数据库转换。
然后我对我的实时数据库执行了同样的操作,删除了现有的数据库,然后从转换后的备份中恢复了它,瞧,对于一个特定的网页,时间从15秒下降到了2秒。
我的问题是为什么?我唯一想到的是,也许索引变得太大了,通过删除数据库,重新创建了索引?\
我离得太远了吗?还有其他原因吗?另外,如果是这样的话,我将来如何在不删除数据库的情况下解决这个问题呢?
谢谢
发布于 2011-01-08 03:29:56
尝试查看解释计划,或者可能需要更新您的统计数据。很难在高层次上确定这类事情,因为有太多不同的事情可以跨服务器发生。
发布于 2011-01-08 03:21:04
它是高写入或高读取问题(或两者都有)的数据库?
您正在数据库中执行哪些“转换”,而不是在登台数据库中执行?
您是否可以更具体地说明正在发生的事情?
也许可以读一读这本书http://www.amazon.com/High-Performance-MySQL-Jeremy-Zawodny/dp/0596003064 (它非常好)(我不是作者)。
发布于 2011-01-08 03:38:07
很容易,当您重新构建表时,记录按顺序排列,将有用的记录放在彼此附近,这样查询就不需要大量的磁盘读取。如果您想要检查,MySQL统计数据可以显示读取计数。
https://stackoverflow.com/questions/4629332
复制相似问题