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

MySQLテーブルインデックスの最適化

    タイムスタンプ列とユーザーIDのインデックスが役立ちます。 EXPLAINステートメントの出力を読み取ることができる必要があります。

    MySQLに移動し、次の手順を実行します。

    EXPLAIN SELECT timestamp, username, [a few more] FROM log 
    WHERE timestamp  BETWEEN '2012-03-30 08:00:00' AND '2012-03-30 16:00:00' 
    AND username='XX' 
    

    これは、MySQLがクエリを実行するために使用するプランを示しています。キーと呼ばれる列があります。これは、MySQLがクエリで使用しているインデックスを示します。そこにALLが表示されると思います。これは、MySQLがテーブルを上から下にスキャンして、すべての行をwhere句と照合していることを意味します。次に、タイムスタンプ列とユーザーID列にインデックスを作成します。 EXPLAINステートメントを再度実行します。キー列に作成したインデックスが表示されます。

    MySQLがインデックスを使用する場合、クエリはかなり高速になるはずです。インデックスを付けすぎないように注意してください。インデックスを使用すると、挿入、更新、および削除が遅くなります。テーブルに新しい行を挿入し、テーブルに3つのインデックスがある場合、新しい行は3つの異なるインデックスに3つの値を書き込む必要があります。つまり、両刃の剣です。




    1. PHPMySQLDelete関数のwhileループ

    2. DATE()の例– MySQL

    3. concatを使用したpdo更新ステートメントが機能していません

    4. MySQLで文字列の一部を置き換える方法