대용량 DB 데이터에서 테스트해본 내용을 정리했다.



ORDER BY RAND()는 성능이 좋지 않아서 잘못하면 DB 성능에 악영향을 미칠 수 있다. 


SELECT name, birth FROM birthday ORDER BY RAND() LIMIT 10




index를 가진 필드를 기반으로 범위로 정하는 것이 조금 나은 형태인듯 하지만..


SELECT name, birth FROM birthday WHERE birth>=0101 and birth<=0131 LIMIT 10



그러나 대용량 데이터에서는 데이터가 많아지면서 범위 지정은 점차 성능 저하가 나타날 수 있다. 


따라서 범위를 정하지 않는 게 가장 낫다.



SELECT name, birth FROM birthday WHERE birth=0101 LIMIT 10


SELECT name, birth FROM birthday WHERE birth=0102 LIMIT 10



Posted by 김용환 '김용환'

댓글을 달아 주세요