表題の方法を調べています。
【開発環境】
windowsXP sp2 VC++6.0
サーバ(MySQL5.0)へはCRecordsetを使ってODBC(MyODBC3.51)経由で接続
【調査内容】
DBからのデータ取得の際、検索レコード数が多い場合、インデックスを使用して
検索速度の向上を図るかと思いますが、インデックスを追加したにも関わらず、
MySQLがそのインデックスを使用してくれない場合があります。(同じテーブルに
複数のインデックスがあり、MySQLが別のインデックスの使用がベターだと判断した場合)
こういった場合に、強制的に任意のインデックスを使用させる為に、SQLに
オプティマイザヒントを与えるかと思いますが、CRecordsetを使う場合、
どのようにオプティマイザヒントを設定すれば良いのか判らず、困っています。
【参考】
ドス窓からSQLを発行する場合、以下のように「USE INDEX」という命令を使うと
うまく任意のインデックスを使用させられました。
SELECT * FROM table_nm WHERE field1=1000;
↓
SELECT * FROM table_nm USE INDEX(index_nm) WHERE field1=1000;
情報をお持ちの方ご教授下さい。宜しくお願いします。
ツイート | ![]() |