[前][次][番号順一覧][スレッド一覧]

mysql:11647

From: <a2cf@xxxxxxxxxx>
Date: Wed, 29 Jun 2005 17:25:57 +0900
Subject: [mysql 11647] Re: MySQL4.1.12でのLIKE演算子

atsushiです。

> まず BINARY 演算子は COLLATE 節の省略形で、対象の左辺に記述します。
> 和山さんの SQL ですと syntax error となります。

すみません、ご指摘のとおりです。

> また、桁数を指定してインデックスを作成していますので、
> インデックス項目に指定した桁数を超えるデータをセットするのは望ましくありません。
> 強引にセットするなら指定した桁数以内で検索ができるような運用が必要です。
> でないと MySQL 側として正確な動作が保証できなくなると思います。
> (本当はここに気付いて欲しかった)

そうですね。
確かにインデックスに作成した桁数内にデータを収めるのがベストなのですが、可変長の列だったのでインデックスに使用する領域を節約するためにはやはりどこかで決め打ちしてバイト数を指定するのがよいかと思っておりました。
バイト数を決め打ちした場合でも、MySQLはまず用意されている固定長のインデックスを使用して検索し、その後さらにその結果から正しいものだけを返すのかと思っておりました。
つまりインデックス作成時のバイト数が長いほどインデックスが正しくヒットして高速化するが、それのトレードオフとしてインデックス使用領域が増えるというイメージです。

でも、4.1だけがこうなっているのなら、なんとか改善して欲しいところですね・・・。

もろもろご指摘ありがとうございました。




[前][次][番号順一覧][スレッド一覧]

->   11647 2005-06-29 17:25 [<a2cf@xxxxxxxxxx>   ] Re: MySQL4.1.12でのLIKE演算子           
     11648 2005-06-29 18:01 ┗["Ryousuke Wayama" <w]