- PR -

MYSQL indexが使用されない

1
投稿者投稿内容
KKK
会議室デビュー日: 2005/06/04
投稿数: 6
投稿日時: 2008-02-20 07:59
MYSQLでwhere句にlower関数を使用しているのですが
indexが使用されなくなり、クエリが遅くなってしまっています。

indexを使用してもらうようにするには、どうすればいいでしょうか。

SQL文自体はhibernateが自動作成しているので、SQLの修正ではなく
MYSQLのパラメータでチューニングしたいと考えています。
InnoDBエンジンを採用しています。(これもMyISAM等に変えるの考えておりません。)
ノラ
常連さん
会議室デビュー日: 2003/11/06
投稿数: 37
お住まい・勤務地: 東京都
投稿日時: 2008-02-20 16:11
テーブルに検索用の列を追加して、insert,updateトリガでlower関数値をセットして、
検索時にはその列を指定するぐらいしか思いつきません。

Oracleだとファンクション索引使えるんですが。
KKK
会議室デビュー日: 2005/06/04
投稿数: 6
投稿日時: 2008-02-21 01:44
いろいろ考えていただきありがとうございます。
確かにOracleだと大丈夫ですよね。

しばらくパラメータをいじってみたいと思います。

クエリを修正できないのはとてもつらいですね。
1

スキルアップ/キャリアアップ(JOB@IT)