MySQL에서 대규모 숫자 시퀀스 생성: 수정된 접근 방식
이 기사에서는 MySQL에서 연속된 숫자로 구성된 대규모 테이블을 생성하는 과제에 대해 설명합니다. 이전 시도에서는 세미콜론과 쉼표가 누락되어 구문 오류가 발생했습니다. 수정된 코드와 생성기를 사용하는 보다 효율적인 대안은 다음과 같습니다.
직접 삽입에 대한 수정된 구문:
다음 코드는 테이블을 생성하고 데이터를 삽입하는 올바른 구문을 보여 주지만 대규모 시퀀스에 가장 효율적인 방법은 아닙니다.
<code class="language-sql">CREATE TABLE numbers ( number INT NOT NULL, CONSTRAINT XPKnumbers PRIMARY KEY CLUSTERED (number) ); INSERT INTO numbers (number) VALUES (0); -- The following section contains a syntax error in the original post and is not valid MySQL. A procedural approach is needed for iterative insertion. -- A stored procedure or a loop within a script would be more appropriate for large datasets.</code>
발전기를 이용한 효율적인 접근 방식:
훨씬 더 효율적인 방법은 MySQL 뷰의 강력한 기능을 활용하여 생성기를 생성하는 것입니다. 이러한 생성기는 numbers
테이블에 삽입할 수 있는 일련의 숫자를 생성합니다. 이렇게 하면 기존 최대 수에 대한 반복 쿼리를 피할 수 있습니다.
다음은 이러한 생성기를 구성하는 방법의 예입니다.
<code class="language-sql">CREATE OR REPLACE VIEW generator_16 AS SELECT 0 n UNION ALL SELECT 1 UNION ALL SELECT 2 UNION ALL SELECT 3 UNION ALL SELECT 4 UNION ALL SELECT 5 UNION ALL SELECT 6 UNION ALL SELECT 7 UNION ALL SELECT 8 UNION ALL SELECT 9 UNION ALL SELECT 10 UNION ALL SELECT 11 UNION ALL SELECT 12 UNION ALL SELECT 13 UNION ALL SELECT 14 UNION ALL SELECT 15; CREATE OR REPLACE VIEW generator_256 AS SELECT ((hi.n << 4) | lo.n) AS n FROM generator_16 lo, generator_16 hi; -- Create additional generator views (generator_4096, generator_64k, etc.) as needed, building upon previous ones.</code>
효율적인 테이블 채우기:
생성기가 생성되면 numbers
테이블을 효율적으로 채울 수 있습니다.
<code class="language-sql">INSERT INTO numbers (number) SELECT n FROM generator_64k; -- Replace generator_64k with the appropriate generator view for your desired range.</code>
이 생성기 접근 방식을 사용하면 반복 삽입으로 인한 성능 병목 현상을 방지하고 MySQL 데이터베이스에서 대규모 숫자 시퀀스를 생성하는 프로세스 속도를 크게 높일 수 있습니다. 필요한 시퀀스의 크기에 맞게 사용된 생성기 보기(이 예에서는 generator_64k
)를 조정해야 합니다.
위 내용은 MySQL에서 큰 숫자 시퀀스를 효율적으로 생성하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!