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

インデックスを使用しないエイリアスを使用したMySQLクエリ

    エイリアスが原因です。 ORDER BY インデックスが付けられているもので順序付けされている場合は、インデックスを使用できます。 ceremonyDate 日付はインデックスに登録できます、YEAR(ceremoneyDate) ceremonyDateの値を変更します まったく違うものに変更するので、YEAR(ceremoneyDate) インデックス付けされていません。

    また、エイリアスにインデックスを付けることはできないため、これはORDER BYの順序で インデックスを使用するには、単純な列名または列名のリストである必要があります。

    これを実行して、インデックスを使用できるはずです:

    SELECT ordinal,YEAR(ceremonydate) as yr 
    FROM awardinfo 
    ORDER BY ceremonydate DESC LIMIT 1;
    

    データがどのように見えるかを知らなくても、代わりにそれが機能する可能性があります。

    詳細: http://dev.mysql。 com / doc / refman / 5.0 / en / order-by-optimization.html



    1. 1時間あたりの日時のカウントによるSQLServerグループ?

    2. SQLで数値を最も近い整数に切り上げる方法

    3. dev / prodでMysqlを使用し、テストでH2を使用します

    4. MySQLトリガーのデバッグ