我需要實現一個MySQL
服務器數據庫上FULLTEXT
搜索(在10K-200K記錄的大小範圍)。
截至目前,數據庫搜索是基於幼稚的做法(LIKE
查詢),這顯然是低效率的,更何況不可配置等
兩個備選方案被認爲:
啓用
MySQL
「 (需要添加一個或多個MyISAM
表 - 整個數據庫現在爲InnoDB
);安裝
Sphinx
。
(我們使用PHP 5.2和升級是不是一種選擇,所以InnoDB的FULLTEXT是毫無疑問的在這裏。)
問題
有性能方面的考慮。無論如何實現FULLTEXT
都會佔用更多的磁盤空間,並且給CPU帶來更多的負擔是可以理解的。
目標是找出多少。這兩種解決方案都要以對方爲基準(當然還有當然的現狀)。我需要設置並執行這些測試。
我會去了解它的方式是:
填寫了真實數據的數據庫(說10萬行);
測量構建索引所需的時間;
通過插入/更新數千行來模擬重新索引的需求 - 再次分析所需的時間以及CPU和RAM的使用情況;
在布爾和自然語言模式下使用一組短短詞組測試查詢速度。
相當簡單,到目前爲止,但任何意見,將不勝感激,因爲我更多的桌面/客戶端應用開發的,我走出我的安樂窩。
問題
我缺少什麼?這個測試場景是否可能產生有意義的結果?
如果不是cron腳本,監控服務器CPU和RAM使用情況的正確方法是什麼?
我知道這是一個開放的問題,我希望它不會被關閉。
即使對於200k記錄,獅身人面像和myisam搜索之間沒有區別。但對我來說,myisam Percona服務器更快,全文+索引 –
LIKE +索引就足夠了,如果你不使用兩邊搜索(%ddd%) –
@DenisErmolin - 我們這樣做。另外,我們真的是更好的準確性(「你是否意味着...」的功能等) –