커버링 인덱스 사연 약 178만 건 자료가 들어 있는 이력 로그 테이블이 하나 있다. 보다시피 auto increment PK 하나 말고는 인덱스가 없다시피하다. 여기서 10분 전 ~ 지금 생성된 foo_id를 골라줘야 하는 일이 생겼다. 아무 생각 없이 쿼리를 잡았다. 써 있는 그대로 실행하면 되는 쿼리이고 그래서 실행 계획도 별로 나빠 보이지 않았다. 그런데 실행해 보니 어? 50초가 넘게 걸린다. 결과가 나오긴 하지만 이건 acceptable하지 않고 곤란한 수준이다. 어떡하지? 50초를 감내해야 하나? 내가 뭐 많은 거 바라는 게 아닌데? 그러던 중 문득, 가급적 인덱스를 활용하는 편이 좋다는 걸 어디서 주워들은 게 생각이 나서, 쿼리를 마개조를 했다. 딱 보기에도 너무 억지스럽고 EXPLAIN도 아주 안 좋아 보였다. 랄까 실행 계획 출력에 시간이 걸리는 건 처음 봤다. '그럼 그렇지 이렇게 마개조를 한 쿼리가 잘 될리가 없지 그