0

私が今実行しているクエリに基づいて、これは夢のようなものだと思います。

文字列IDを含む列にインデックスがあります。これらのIDの最後には識別子があるため、必要なデータをキャプチャするには、次のようにパターンマッチングを行う必要があります。

key LIKE '%racecar'

文字列の先頭にワイルドカードを使用するとインデックスを利用できないため、次のことができると期待していました。

reverse(key) LIKE 'racecar%'

しかし、これは、MySQLがとにかくすべての行を調べて関数を実行する必要があることを意味しますが、それは正しいですか?命名規則を変更する以外に、この問題を回避する他の方法はありますか?

4

1 に答える 1

0

これは悪いDB設計のようなにおいがします。文字列とIDを2つの別々の列に分割すると、問題(および他の多くの問題)が自動的に解決されます。

また、文字列とIDの順序がMYSQLのパフォーマンスに影響を与えるかどうかも疑問です。

また、キーに対するインデックスがあることにも注意してください。ただし、これは、逆のインデックスがあることを意味するわけではありません。keyこれが、スピードアップがまったく得られない理由です。状況を考えると、パフォーマンスは救いを超えていると私は信じています。

于 2013-03-08T15:55:38.867 に答える