同じ列を持つ2つの異なるストレージエンジンで2つのテーブルを作成しました:table1(id、col1、col2)MyIsam table2(id、col1、col2)innodbすべてのテーブルに含まれる1700000
2つのテーブルに(col1、col2)のフルテキストインデックスを作成しました。それらを含む結果を抽出するために必要な2つのキーワードがあります: 'school'と 'bus'ワイルドカードを使用して抽出していますselect * from table1 where match(col1 、col2)に対して( '+ scho * + bus *')
table1(MyIsam)の結果は正しくなく、合計26573で、クエリに0.0009秒かかりました。行にキーワード「school」または「bus」が含まれています。
table2(innodb)では、結果は正しく、合計369で、クエリには0.0420秒かかりました。行には「school」と「bus」の2つの単語が含まれています。
誰かが私を助けることができますか?
+ match(col1、col2)の前に( '+ scho * + bus *')に対してスペースを入れることで、この問題を解決しました。
しかし、別の問題があります。何かで終わるキーワードで検索したい場合、キーワード「School」で検索すると表示されません。match(col1、col2)に対して( '+ chool ')0行
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加