recuperando o MySQL grande seleciona em chunks
Quando confrontado com grandes consultas MySQL que excedem milhões de linhas, torna -se crucial para otimizar o desempenho para evitar erros de memória. Uma abordagem eficaz é recuperar dados em pedaços, em vez de tentar recuperar todo o conjunto de dados de uma só vez.
para conseguir isso, você pode utilizar o recurso Limit. Ao especificar a linha inicial (deslocamento) e o número de linhas para recuperar (limite), você pode recuperar dados em segmentos gerenciáveis. Por exemplo, a consulta a seguir retorna as primeiras 1.000 linhas:
SELECT * FROM MyTable ORDER BY whatever LIMIT 0,1000
para recuperar pedaços subsequentes de 1.000 linhas, ajustar o deslocamento e deslocamento e deslocamento e deslocamento e deslocamento e deslocamento e deslocamento e deslocamento e deslocamento e deslocamento e deslocamento e deslocamento e deslocamento e deslocamento e Limite de acordo:
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
No entanto, para garantir a consistência dos seus dados, é recomendável criar uma tabela temporária e preencher -a com os resultados da consulta original. Isso congela os dados no tempo e evita alterações durante o processamento. A tabela temporária pode ser consultada em pedaços:
CREATE TEMPORARY TABLE MyChunkedResult AS (
SELECT *
FROM MyTable
ORDER BY whatever
);
-- retrieve row chunks
SELECT * FROM MyChunkedResult LIMIT 0, 1000;
SELECT * FROM MyChunkedResult LIMIT 1000,1000;
SELECT * FROM MyChunkedResult LIMIT 2000,1000;
finalmente, lembre -se de deixar abandonar a tabela temporária quando terminar para evitar o uso desnecessário de armazenamento:
DROP TEMPORARY TABLE MyChunkedResult;
Isenção de responsabilidade: Todos os recursos fornecidos são parcialmente provenientes da Internet. Se houver qualquer violação de seus direitos autorais ou outros direitos e interesses, explique os motivos detalhados e forneça prova de direitos autorais ou direitos e interesses e envie-a para o e-mail: [email protected]. Nós cuidaremos disso para você o mais rápido possível.
Copyright© 2022 湘ICP备2022001581号-3