집 >데이터 베이스 >MySQL 튜토리얼 >MySQL 데이터베이스에서 단순 무작위 샘플을 효율적으로 얻으려면 어떻게 해야 합니까?
MySQL 데이터베이스에서 단순 무작위 샘플을 효율적으로 검색하는 방법
SQL에서는 대규모 데이터 세트에서 무작위 샘플을 얻는 것이 어려울 수 있습니다. 기존 접근 방식에서는 임의의 값으로 행을 정렬하고 원하는 행 수를 선택하는 작업이 포함됩니다. 그러나 이 방법은 비용이 많이 드는 정렬 및 RAND() 평가가 필요하므로 비효율적입니다.
특히 MySQL의 경우 대체 접근 방식을 사용하면 성능이 크게 향상됩니다. 균일하게 분포된 난수를 생성하는 MySQL RAND() 함수의 고유한 기능을 활용하면 정렬을 완전히 피할 수 있습니다.
공식은 다음과 같습니다.
select * from table where rand() <= ( desired sample size / total rows )
이 쿼리는 각 행에 대한 난수이며 값 범위는 0부터 1입니다. 이 난수를 원하는 샘플 크기 및 총 행 수를 기반으로 한 임계값과 비교하여 다음을 표시할지 여부를 결정할 수 있습니다. row.
이 접근 방식을 사용하면 정렬 오버헤드 없이 효율적인 O(n) 성능을 얻을 수 있습니다. 데이터베이스는 각 행에 대한 RAND() 평가의 상당한 계산 시간이나 정렬의 복잡성을 초래하지 않고 원하는 샘플 크기를 신속하게 선택할 수 있습니다.
MySQL의 rand() 기능을 활용하여 우리는 다음과 같은 능력을 얻습니다. 최적의 속도와 효율성으로 단순 무작위 샘플을 검색합니다.
위 내용은 MySQL 데이터베이스에서 단순 무작위 샘플을 효율적으로 얻으려면 어떻게 해야 합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!