我在生產服務器上遇到此問題。應用程序棧是,MySQL查詢運行速度極快,5000條記錄表
- 的Java Web應用程序在Tomcat 6.0.18
- iBatis的數據訪問層
- 的MySQL 5.0數據庫
- CentOS的
該系統被部署具有虛擬服務器上大約256 MB的內存。
真正的問題:如果執行下面的查詢
查詢等,
select * from customer
在但是10秒左右執行,
select * from customer where code like '%a%'
執行上述查詢之後,所述系統進入無限期處理並最終迫使Tomcat重新啓動!
表統計: - 記錄數:5000 - 主鍵:代碼
同樣的查詢PHP MyAdmin圍繞4秒執行。
您是否認爲這可能是MySQL問題?任何想法來調試這個。我現在正在啓用詳細的日誌,並會不斷更新這個問題與我的研究結果,但會很感激你的數據分析的見解。
這是寫在大膽的文本語句。可能是我使用了錯誤的MarkDown標籤。讓我解決這個問題 – jatanp 2009-12-21 05:37:33
我明白了。我修好了它。 – Asaph 2009-12-21 05:37:54
我不希望從客戶那裏選擇*'%a%'這樣的代碼要快,因爲它不可能使用索引。每個記錄都必須檢查。如果可能的話,考慮從客戶那裏選擇*代碼如'a%',因爲那樣可以使用索引。 – Asaph 2009-12-21 05:39:52