2009年7月18日

[mysql 14987] Re: BLOB 列のデータを大文字・小文字の区別無 く検索する方法

Mikiyaさん、いつもありがとうございます。

>>> ただしこのようなクエリ(中間一致)ではテーブルスキャンが起きてしまうので注意してくださいね。
>>
>> つまり、キャッシュが使えないということですね。
>

> いえ、違います。中間一致と後方一致(先頭に%がついている)が問題なのです。
> その場合どのようなインデックスも利用することは出来ません。

そうなんですよね。

> データ型をTEXTに出来るなら、FULLTEXTを利用するのもアリですよ。
> FULLTEXTなら中間一致検索の問題をクリアできます。
> 日本語への対応が必要ならTritonnも利用出来ます。

なるほど、とても勉強になります。

もし、TEXT に変更できるようなら FULLTEXT や Tritonn(初めて聞きました。) を検討したいと思います。


以上です。


----------------------------------------
> Date: Sat, 18 Jul 2009 13:08:52 +0900
> From: Mikiya.Okuno@xxxxx
> Subject: [mysql 14986] Re: BLOB 列のデータを大文字・小文字の区別無 く検索する方法
> To: ml@xxxxx
>
>
> On 18/07/2009, at 12:59 PM, kageyama 3 wrote:
>
>>> ただしこのようなクエリ(中間一致)ではテーブルスキャンが起きてしまうので注意してくださいね。
>>
>> つまり、キャッシュが使えないということですね。
>
> いえ、違います。中間一致と後方一致(先頭に%がついている)が問題なのです。
> その場合どのようなインデックスも利用することは出来ません。
>
>>
>> ということは、出来ることならばテーブルを作成する時に CREATE TABLE tbl(clm TEXT COLLATE utf8_bin) と
>> した方が良いですよね。
>>
>> タイミングを見て、変更できれば良いのですが。
>
> データ型をTEXTに出来るなら、FULLTEXTを利用するのもアリですよ。
> FULLTEXTなら中間一致検索の問題をクリアできます。
> 日本語への対応が必要ならTritonnも利用出来ます。
>
> --
> Mikiya Okuno, MySQL Support Engineer
> Sun Microsystems KK, Tokyo, Japan
> http://www-jp.mysql.com/
>
>

_________________________________________________________________
無料で使える25GB。USBメモリの代わりに、Webに保存
http://clk.atdmt.com/GBL/go/153787332/direct/01/


投稿者 xml-rpc : 2009年7月18日 13:15
役に立ちました?:
過去のフィードバック 平均:(0) 総合:(0) 投票回数:(0)
本記事へのTrackback: http://hoop.euqset.org/blog/mt-tb2006.cgi/86833
トラックバック
コメント
コメントする




画像の中に見える文字を入力してください。