@kyanny's blog

印刷は人間に対し市場を作り出し、国民軍を創設する方法も教えたのであった - マーシャル・マクルーハン「グーデンベルグの銀河系」

MySQL のインデックスは ORDER BY 句にかかる部分も含めてはること

SELECT * FROM table1
WHERE foo > 0
ORDER BY id DESC
LIMIT 100

こんな SQL を発行したいときに、

ALTER TABLE table1 ADD INDEX (foo)

このインデックスだけでは十分ではなく、

ALTER TABLE table1 ADD INDEX (foo, id)

のように複合インデックスをはらないといけない。そうしないと最後の sort の部分で Using filesort とかになってしまい、遅くなる。