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

MySQLのFORCEINDEX-どこに配置しますか?

    indexの構文 ヒントはここに文書化されています:
    http:// dev.mysql.com/doc/refman/5.6/en/index-hints.html

    FORCE INDEX テーブル参照の直後に移動します:

    SELECT * FROM (
        SELECT owner_id,
               product_id,
               start_time,
               price,
               currency,
               name,
               closed,
               active,
               approved,
               deleted,
               creation_in_progress
        FROM db_products FORCE INDEX (products_start_time)
        ORDER BY start_time DESC
    ) as resultstable
    WHERE resultstable.closed = 0
          AND resultstable.active = 1
          AND resultstable.approved = 1
          AND resultstable.deleted = 0
          AND resultstable.creation_in_progress = 0
    GROUP BY resultstable.owner_id
    ORDER BY start_time DESC
    

    警告:

    ORDER BYを使用している場合 GROUP BYの前 owner_idごとに最新のエントリを取得するには 、それを行うために、MySQLの非標準で文書化されていない動作を使用しています。

    MySQLの将来のバージョンで引き続き機能するという保証はなく、クエリは他のRDBMSでエラーになる可能性があります。

    このタイプのクエリのより良い解決策の多くの説明のためのタグ。



    1. nullをチェックするためのselectステートメントのMYSQLケース

    2. Wampserverアイコンが完全に緑色にならない、mysqlサービスが起動しない?

    3. SpringのjdbcTemplate.batchUpdate()が非常に遅いのはなぜですか?

    4. MySQLとPDO