MySQLコマンドやSQL文に関する各種メモ書き

MySQLのソートで null 最後にする「カラム名 is null」が遅いので高速にする

● MySQLのソートで null 最後にする「カラム名 is null」が遅いので高速にする

*遅いSQL文

SELECT
    *
FROM my_table
ORDER BY
    salesrank_no is null, salesrank_no LIMIT 10;

  ↓ 別々で取得して、UNION を使用します。

*早いSQL文

(SELECT * FROM my_table ORDER BY salesrank_no is null, salesrank_no LIMIT 10)
UNION ALL
(SELECT * FROM my_table WHERE AND ( salesrank_no is null ) LIMIT 10)
ORDER BY salesrank_no is null, salesrank_no LIMIT 10;
No.1892
10/26 19:14

edit