2011-01-07 255 views
0

我的網站出現問題,其中一個特定頁面需要大約15秒的時間才能在我的實時網站上返回數據,而在我的暫存網站上則需要2秒鐘。但他們都使用了相同的數據庫備份。MySql優化查詢

然後我意識到對於我的臨時數據庫,我已經刪除了舊的臨時數據庫並將轉換的備份還原爲新的臨時數據庫。

但是,在實時數據庫中,我直接在實時數據庫上運行數據庫轉換。

然後,我對我的實時數據庫也做了同樣的事情,並刪除了現有數據庫,然後從轉換後的備份中恢復它,呃,時間從那個特定網頁的15秒減少到2秒。

我的問題是爲什麼?唯一想到的是,可能索引變得太大了,通過刪除數據庫,索引被重新創建了嗎?\

我遠嗎?任何其他原因?此外,如果是這樣的話,我怎麼能在將來刪除數據庫?

感謝

回答

1

嘗試查看解釋計劃,或者您的統計信息需要更新。很難確定這些高層次的事情,因爲跨服務器可能會發生很多不同的事情。

+0

嗨PMV。你提到的這個解釋計劃在哪裏?它在WorkBench或MYSQL查詢瀏覽器中可用嗎? – Cheeky 2011-01-11 10:25:06

0

它是一個高寫入或高讀取問題(或兩者)的數據庫?

你在數據庫中做什麼「轉換」,你沒有在臨時數據庫上做什麼?

請問您是否可以更具體地瞭解發生了什麼?

也許讀這本書http://www.amazon.com/High-Performance-MySQL-Jeremy-Zawodny/dp/0596003064(它非常好)(我不是作者)。

+0

活動數據庫和分段數據庫之間的唯一區別如下: 對於分段,我拿了一個活動數據庫的副本,在其上運行了一些轉換腳本並將其恢復爲「分段」 對於活動,我帶着跑直播網站上的相同轉換腳本。 所以實質上,活動數據庫和分段數據庫是相同的。唯一的區別是暫存數據庫已從活動數據庫的副本中刪除並恢復,而活動並未被刪除,只是在不脫機的情況下運行轉換,然後進行恢復。 – Cheeky 2011-01-11 10:25:44

0

可能很容易的是,當您重建表格時,記錄按照將有用記錄彼此靠近的順序放置,因此查詢不需要儘可能多的磁盤讀取。如果你想檢查,MySQL統計可以顯示你的讀數。