這可能對問題過於籠統或主觀,但我需要幫助,我甚至不確定正確和簡潔的問題是什麼。在過去的幾天裏,我已經做了大量的谷歌搜索,試圖理解這一點,而且我比以往更加困惑於採取什麼方法。搜索性能和數據完整性的最佳實踐(或最佳引擎)
在MySQL中,我爲產品目錄構建了一個數據庫。我必須跟蹤一些多對多的關係,例如產品標籤,產品類別,所以我決定我需要在這些表中使用INNODB
,以便我可以利用FOREIGN KEY
約束條件。這很好,但是。 INNODB
不支持FULLTEXT
。我讀過在WHERE
子句中使用LIKE '%WORD%'
的性能不佳,因爲當通配符在搜索詞前面不能使用索引。數據庫在某些時候可能會有很多條目,我不想永久搜索。
那麼人們如何擁有他們的蛋糕並且也吃了呢?我是否需要選擇其中一個:FULLTEXT
或FOREIGN KEY
?我應該做一個只包含最多搜索相關列的摘要MYISAM
表,並使用INNODB表上的觸發器來更新它?難道這不會 - 至少部分地 - 首先擊敗使用FOREIGN KEY
限制的獎金:消除重複和多餘的數據?搜索大型數據庫以最佳性能工作的最佳模式是什麼 - 至少在使用INNODB
與MYISAM
?
如果有人光明和有經驗,至少可以指引我朝着正確的方向,我將不勝感激。提前致謝。
InnoDB從v5.6開始支持'FULLTEXT'。 – eggyal
此演示文稿有一些關於postgresql全文搜索的有趣信息http://www.slideshare.net/billkarwin/full-text-search-in-postgresql(編輯:Bill Karwin在我發佈這篇文章後幾秒鐘就回答了,Doh! :-) –