これは私の最初のプロジェクトなので、たくさんの質問があって申し訳ありません。
上記の Cat テーブルを検索するためのインデックスを作成しようとしています。
しかし、where句には複数のケースがあるため、どのように適用すればよいのかわかりません。
リーリー可能であれば、年齢、名前、生年月日に個別のインデックスを作成できますか? そうでない場合は、(年齢)、(年齢、名前)、(年齢、生まれ)、(年齢、名前、生まれ)...をケースごとに作成する必要がありますか?
本を読んでもよくわからないので疑問が残ります。このことで気分を害しないことを願っています。
mysql v8.0 innoDB を使用しています。
###ありがとう!
リーリー
おそらくは助けが得られるでしょう
リーリーただし、注意してください:
リーリーbirth
のタイプがDATETIME
である場合、12/31 の大部分が欠落しています。先頭に ワイルドカード文字があるため、インデックス作成は役に立ちません。 リーリー
アーキテクチャの設計が不十分です。猫が誕生日を迎えると何が起こるかを想像してみてください。この列を更新する必要があります。代わりに、birth
ただし、と
CURDATE()を使用して日付の計算を行います。
age
cat.birth列を保持する場合、これは
役立つ可能性があります: リーリー 今日の別の質問でクエリを紹介しました。参照してください。特定の
SELECT
に適切なインデックスを構築する方法については、私の インデックス クックブック を参照してください。WHERE ... AND ...
のどこで「複合」(複数列)INDEX
を有効に使用できるかを示しています。どの例でも複合インデックスを使用できません。