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

MySQL:xxxより古い最新のエントリを取得します。パフォーマンス

    (objectID, time)の複合インデックスが必要です :

    ALTER TABLE my_table ADD INDEX (objectID, time)
    

    これは、MySQLが最大timeを取得できるためです。 objectIDごとに インデックスツリーから直接;次に、同じインデックスを使用してテーブルを再度結合し、グループごとの最大値 2番目のクエリのようなものを使用してレコードを作成します(ただし、1つは両方のobjectIDで結合する必要があります およびtime -NATURAL JOINを使用するのが好きです このような場合):

    SELECT *
    FROM   my_table NATURAL JOIN (
      SELECT   objectID, MAX(time) time
      FROM     my_table
      WHERE    time <= 1353143351
      GROUP BY objectID
    ) t
    



    1. 複数の結果セットを返すPostgreSQL関数

    2. Google Cloud SQLで管理されているPostgresから未使用の一時ファイルを削除するにはどうすればよいですか?

    3. エコー/リターンは変数の前に空白を追加しています

    4. mysqliを使用してSQLインジェクションを防ぐには、NULLまたはCURRENT_DATEを設定する方法は?