sql >> データベース >  >> RDS >> Mysql

大規模なデータベースでこのクエリをデータベース化する方法は?

    主キー以外にインデックスはありません。 WHEREステートメントで使用するフィールドにインデックスを作成する必要があります。 1つのフィールドのみにインデックスを付ける必要がある場合、または複数のフィールドの組み合わせは、そのテーブルに対して実行する他のSELECTに依存します。

    REGEXP インデックスはまったく使用できません、LIKE ワイルドカードで始まらない場合にのみインデックスを使用できます(したがって、LIKE 'a%' インデックスを使用できますが、LIKE '%a' できません)、より大きい/より小さい(<>)は通常、インデックスも使用しません。

    したがって、codeが残ります およびcheck 田畑。 checkの値は多くの行で同じになると思います 、したがって、インデックスはcodeで始まります 分野。マルチフィールドインデックスは、定義された順序でのみ使用できます...

    フィールドcode, check用に作成されたインデックスを想像してみてください 。このインデックスは、クエリ(WHERE句に両方のフィールドが含まれている場合)で使用できます。また、codeのみのクエリでも使用できます。 フィールドですが、checkのみのクエリではありません フィールド。

    ORDER BY idは重要ですか ?そうでない場合は、省略してください。ソートパスが妨げられ、クエリがより速く終了します。



    1. SQL Server(T-SQL)でデータベースメールプロファイルを削除する

    2. SQLiteで昨日の日付を取得する方法

    3. Strftime()関数がSQLiteでどのように機能するか

    4. where句で「caseexpressioncolumn」を使用する