ホームページ  >  に質問  >  本文

MySQL に基づく動的検索クエリのインデックス作成

これは私の最初のプロジェクトなので、たくさんの質問があって申し訳ありません。

上記の Cat テーブルを検索するためのインデックスを作成しようとしています。

しかし、where句には複数のケースがあるため、どのように適用すればよいのかわかりません。

リーリー

可能であれば、年齢、名前、生年月日に個別のインデックスを作成できますか? そうでない場合は、(年齢)、(年齢、名前)、(年齢、生まれ)、(年齢、名前、生まれ)...をケースごとに作成する必要がありますか?

本を読んでもよくわからないので疑問が残ります。このことで気分を害しないことを願っています。

mysql v8.0 innoDB を使用しています。

###ありがとう!

P粉170438285P粉170438285184日前307

全員に返信(1)返信します

  • P粉277464743

    P粉2774647432024-03-31 15:26:09

    リーリー

    おそらくは助けが得られるでしょう

    リーリー

    ただし、注意してください: birth のタイプが DATETIME である場合、12/31 の大部分が欠落しています。

    リーリー

    先頭に ワイルドカード文字があるため、インデックス作成は役に立ちません。 リーリー

    アーキテクチャの設計が不十分です。猫が誕生日を迎えると何が起こるかを想像してみてください。この列を更新する必要があります。代わりに、

    birthCURDATE() を使用して日付の計算を行います。

    ただし、

    age 列を保持する場合、これは 役立つ可能性があります: リーリー 今日の別の質問で

    cat.birth

    クエリを紹介しました。参照してください。特定の SELECT に適切なインデックスを構築する方法については、私の インデックス クックブック を参照してください。 WHERE ... AND ... のどこで「複合」(複数列) INDEX を有効に使用できるかを示しています。どの例でも複合インデックスを使用できません。

    返事
    0
  • キャンセル返事