2011-01-14 44 views
0

我知道這是一個很廣泛的問題,但這裏是我的情況: 1)我一直的轉儲日誌到MySQL(InnoDB的),每15分鐘一個Hibernate支持java程序。它自己的日誌數據是蠻力的(日誌的100k-500k行)。MySQL查詢優化---你的想法

2)目前有正在提供在前端兩件事情,搜索和基於時間戳報告。

3)查詢需要looong時間(10-15分鐘),得到的結果回來,即使我已經把索引和做了解釋,研究其中的服用時間等

4)在MySQL服務器級別,我增加了查詢緩存等。

我跪下來解決這個問題。我需要知道有什麼我可以做,以提高查詢速度。

在此先感謝。 博

+0

順便說一句我沒有在前端使用hibernate來顯示結果。這是一個簡單的SQL查詢包裝在處理前端的PERL中。 – BoCode 2011-01-14 10:24:29

回答

0

使用與MySQL結合一個全文搜索引擎。

例如獅身人面像。每次插入循環後,讓sphinx更新它的緩存。 比你可以使用sphinxse(在sphinx中使用sphinx作爲存儲引擎)來獲得你的結果。 http://www.howtoforge.com/sphinx-as-mysql-storage-engine-sphinxse

另外10至15分鐘,似乎很多時間500000個插入。 您應該使用MyISAM作爲日誌表的存儲引擎,而不是使用INSERT DELAYED而不是INSERT(我不知道如何使用hybernate來存檔)。