대용량 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
'DB' 카테고리의 다른 글
mysql 5.7.5에서 크게 바뀐 내용 (0) | 2017.09.27 |
---|---|
[mysql] 테이블의 컬럼 삭제, 변경, 추가 (0) | 2017.06.18 |
[derby] validation query (0) | 2017.04.10 |
[mysql] auto increment 이슈 (0) | 2016.12.19 |
[mysql] alter table after 필드 (0) | 2016.11.16 |