mysql:7371
From: "HIROSE, Masaaki" <"HIROSE, Masaaki" <hirose31@xxxxxxxxxx>>
Date: Wed, 26 Mar 2003 18:36:27 +0900
Subject: [mysql 07371] Re: 漢字の部分一致検索の挙動について
ひろせです on "[mysql 07361] Re: 漢字の部分一致検索の挙動について" <20030326014721.6b73d7aa.tommy@xxxxxxxxxx> at Wed, 26 Mar 2003 01:47:21 +0900 とみたまさひろ <tommy@xxxxxxxxxx> wrote: > > 残念ながら先日リリースされた 4.0.12 でも直っていませんでした。 > > まだバグ報告してませんから… (^^; 是非、お願いします。m(_ _)m > > ところで、EXPLAIN で見る限りはテーブル定義時の BINARY 属性に比べ、 > > SELECT 時などの BINARY 関数の使用は効率が悪いようなので、原則、 「BINARY 関数の使用は効率が悪いようなので」は嘘でした。 # ついでにいうと BINARY 関数は BINARY 演算子の間違いです。 EXPLAIN で見る限りは、 〜 WHERE BINARY colname LIKE 'keyword%'; と 〜 WHERE colname LIKE BINARY 'keyword%'; とでは結果が異なり、後者ならば性能的には問題にならないようでした。 > > 文字種類 / 大・小文字 > > ========================================================= > > 英のみ / 区別しない → BINARY 属性なし、関数使用しない > > 英のみ / 区別する → BINARY 属性あり、関数使用しない > > 和のみ / 区別しない → BINARY 属性なし、関数使用しない > > 和のみ / 区別する → BINARY 属性なし、関数使用しない > > 英和混在 / 区別しない → BINARY 属性なし、関数使用しない > > 英和混在 / 区別する → BINARY 属性あり、関数使用しない > > > > # 要は ASCII 文字が含まれる場合は BINARY 属性をつける。 > > > > という方針で考えているのですが、これは妥当でしょうか? > > まあ、いいんじゃないでしょうか。クエリによるので一概にはいえないと思い > ますが…。 BINARY 属性をつけないと、大文字小文字の区別が必要な局面で WHERE 句や ORDER BY に BINARY 演算子をつけ忘れてハマりそうな気がするので、原則、 文字列型のカラムには BINARY 属性をつけて CREATE TABLE するようにした方 がいいかなぁと思っています。 # 長年 MySQL を使っている人はこの点どう考えているかお聞きしたいです。 ではでは -- ひろせ
7140 2003-03-06 18:29 [Kitajima <kitajima@x] 漢字の部分一致検索の挙動について 7149 2003-03-08 13:45 ┣[とみたまさひろ <tomm] 7150 2003-03-09 18:18 ┃┗[Kitajima <kitajima@x] 7151 2003-03-09 19:29 ┃ ┗[とみたまさひろ <tomm] 7159 2003-03-11 21:10 ┃ ┗[Takeyuki Miyagawa <m] 7160 2003-03-12 02:08 ┃ ┣[Tomoyuki Ishino <ish] 7161 2003-03-12 11:23 ┃ ┃┗[Kitajima <kitajima@x] 7163 2003-03-13 02:30 ┃ ┗[とみたまさひろ <tomm] @ 7213 2003-03-18 07:16 ┗[とみたまさひろ <tomm] 7218 2003-03-18 13:22 ┣[Kitajima <kitajima@x] 7350 2003-03-25 04:38 ┗["HIROSE, Masaaki" <h] 7361 2003-03-26 01:47 ┗[とみたまさひろ <tomm] -> 7371 2003-03-26 18:36 ┗["HIROSE, Masaaki" <h]