수백만 개의 행이 포함된 대규모 MySQL 선택을 처리할 때 데이터 검색 중에 메모리 제약 문제가 발생할 수 있습니다. 이 문서에서는 LIMIT 기능을 활용하여 관리 가능한 청크의 데이터를 검색함으로써 이 문제에 대한 솔루션을 살펴봅니다.
대규모 데이터 세트를 반복적으로 검색하려면 LIMIT 기능을 사용할 수 있습니다. 시작 행과 검색할 최대 행 수를 지정하면 선택 프로세스를 더 작은 하위 집합으로 나눌 수 있습니다. 예를 들어 다음 쿼리를 실행하면:
SELECT * FROM MyTable ORDER BY whatever LIMIT 0,1000
는 처음 1,000개의 행을 가져옵니다. 1,000개 행의 후속 세트를 검색하려면 다음과 같이 조정된 LIMIT 값을 사용하여 유사한 쿼리를 실행할 수 있습니다. SELECT * FROM MyTable ORDER BY 뭐든 LIMIT 2000,1000 -- 행 2,001 - 3,000
SELECT * FROM MyTable ORDER BY whatever LIMIT 1000,1000 -- rows 1,001 - 2,000 SELECT * FROM MyTable ORDER BY whatever LIMIT 2000,1000 -- rows 2,001 - 3,000
CREATE TEMPORARY TABLE MyChunkedResult AS ( 선택하다 * 마이테이블에서 무엇이든 주문하세요 );
CREATE TEMPORARY TABLE MyChunkedResult AS ( SELECT * FROM MyTable ORDER BY whatever );
SELECT * FROM MyChunkedResult LIMIT 0, 1000; SELECT * FROM MyChunkedResult LIMIT 1000,1000; SELECT * FROM MyChunkedResult LIMIT 2000,1000; .. 등등.
SELECT * FROM MyChunkedResult LIMIT 0, 1000; SELECT * FROM MyChunkedResult LIMIT 1000,1000; SELECT * FROM MyChunkedResult LIMIT 2000,1000; .. and so on.
데이터 검색이 완료되면 리소스 관리를 위해 임시 테이블을 삭제하는 것이 좋습니다.
DROP TEMPORARY TABLE MyChunkedResult;
DROP TEMPORARY TABLE MyChunkedResult;
부인 성명: 제공된 모든 리소스는 부분적으로 인터넷에서 가져온 것입니다. 귀하의 저작권이나 기타 권리 및 이익이 침해된 경우 자세한 이유를 설명하고 저작권 또는 권리 및 이익에 대한 증거를 제공한 후 이메일([email protected])로 보내주십시오. 최대한 빨리 처리해 드리겠습니다.
Copyright© 2022 湘ICP备2022001581号-3