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

intフィールドとしてのタイムスタンプ、クエリのパフォーマンス

    UNIX_TIMESTAMP> 列のFROM_UNIXTIMEの代わりに定数で:

    SELECT * FROM table
    WHERE timestamp_field
       BETWEEN UNIX_TIMESTAMP('2010-04-14 00:00:00')
           AND UNIX_TIMESTAMP('2010-04-14 23:59:59')
    

    データベースが列timestamp_fieldのインデックスを使用できるようになるため、これはより高速になります。 、存在する場合。 sargable 以外を使用している場合、データベースがインデックスを使用することはできません。 列のFROM_UNIXTIMEのように機能します。

    timestamp_fieldにインデックスがない場合 次に1つ追加します。

    これを行ったら、SELECT *を使用する代わりに、必要な列を選択してパフォーマンスをさらに向上させることもできます。 。



    1. 同じサーバー上の2つのLaravelアプリケーションが互いに競合しています

    2. MySQLにUTF8文字を保存できません

    3. MySQLの重複キーエラーにより、重複インデックスレコードに共有ロックが設定されますか?

    4. nullではない最大の列