mysql搜尋字 如何搜尋文字? MySQL的

2021-10-18 06:14:41 字數 609 閱讀 1885

我有這張桌子:

bussid | nameen | keywords

500 name1 name2 keyword1 keyword2

如果使用者搜尋(keyword1或keyword2或name2或name1),我想返回bussid 5000.

所以我應該使用這個查詢select * from business where nameen like』%searching_word%』.

但是這個查詢不使用索引nameen或關鍵字,根據comparison of b-tree and hash indexes「如果like的引數是乙個不以萬用字元開頭的常量字串,索引也可以用於like比較」.

我有這個解決方案,我想建立另乙個表並插入所有單個單詞:

bussid | word

500 name1

500 name2

500 keyword1

500 keyword2

然後我將使用此查詢搜尋bussid:

select * where單詞like』tracked_word%』.

通過這種方式,我將確保mysql將使用索引,它會更快,但這個表將包含大約2000萬行!

還有其他解決方案嗎?

mysql大文字搜尋

mysql內建了三種儲存引擎,分別是innodb,myisam和memory,一般情況下,mysql5.x之後的版本都是使用innodb儲存引擎.三種引擎的對比 innodb 支援事務操作 支援自動增加列 具有行級鎖定 myisam 不支援事務,也不支援外來鍵,但是訪問速度快 對大文字搜尋效能較好 ...

MYSQL全文本搜尋

為了進行全文本搜尋,必須索引被搜尋的列,而且要隨著資料的改變不斷的重新索引。對表列進行適當的改進後,mysql會自動進行所有的索引和重新索引。優點 效能快明確控制 智慧型化的結果 fulltext 列名 mysql對該列索引自動更新 使用match 被搜尋的列 against 指定要使用的搜尋表示式...

MySQL的全文本搜尋

我們在使用mysql時,一般會用到兩種引擎 myisam和innodb,myisam支援全文本搜尋,但不支援事務處理 而innodb支援事務處理,但不支援全文本搜尋。一 有時,我們需要使用全文本搜尋,例如 要搜尋文字中存在指定的某個詞,且以這個詞出現的順序排序。先建立支援全文本搜尋的表 create...