집 >데이터 베이스 >MySQL 튜토리얼 >대규모 MySQL 데이터베이스에서 단순 무작위 샘플을 효율적으로 추출하려면 어떻게 해야 합니까?
문제 설명:
"명백한" 접근 방식(SELECT * FROM table ORDER)을 사용하면 대규모 MySQL 데이터베이스를 효율적으로 사용하는 것이 어려울 수 있습니다. BY RAND() LIMIT n). 이 방법의 비효율성은 각 행에 RAND()를 사용하고 이후 정렬을 수행하여 리소스를 많이 사용하는 O(n lg n) 복잡성으로 인해 발생합니다.
효율적인 솔루션:
이 장애물을 극복하려면 보다 효율적인 접근 방식을 고려해 보세요.
SELECT * FROM table WHERE RAND() <= 0.3
이 솔루션 0과 1 사이의 각 행에 대해 난수를 생성한 다음 확률 임계값(이 경우 0.3)을 기준으로 해당 행을 표시할지 여부를 평가하는 기능으로 인해 "명백한" 방법보다 성능이 뛰어납니다.
설명:
추가 고려 사항:
위 내용은 대규모 MySQL 데이터베이스에서 단순 무작위 샘플을 효율적으로 추출하려면 어떻게 해야 합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!