220,000 行の比較的大きな mysql (myisam) テーブルを最適化しようとしています。テーブル自体はそれほど大きくなく、サイズは約 23.5MB です。それで、本当の問題は何ですか?- 次のようなクエリを取得しました:
SELECT * FROM table WHERE DATE_FORMAT(date_field, '%m%d') = '1128' LIMIT 10
date_field にインデックスを設定しようとしましたが、 EXPLAIN はインデックスがまったく使用されていないことを示しています... DATE_FORMAT() のため、これはそれほど奇妙ではないと思います。そのため、日付を「%m%d」として保持する別の列を追加し、それにインデックスを付ける予定です。これをしたくない唯一の理由は、データの重複のためです。
ところで、私は date_field を生年月日フィールドとして使用していますが、date_field は常に %Y-%m-%d または単に %m%d として必要であると確信しています。
上記のクエリを最適化する方法について、より良い提案はありますか? 前もって感謝します !!!
いくつかの情報:
MySQL バージョン: 5.0.51b-log
OS: slackware 12.1
CPU: Pentium III (Coppermine) at 996.783Mhz
RAM: 512MB DDR
HDD: 80GB SATA
PS日付を %m%d として保持する別の列を追加しようとしました。結果は非常に良いですが、私はまだこのアプローチが好きではありません. 私はより多くの提案を待っています!