"Se um trabalhador quiser fazer bem o seu trabalho, ele deve primeiro afiar suas ferramentas." - Confúcio, "Os Analectos de Confúcio. Lu Linggong"
Primeira página > Programação > Como posso recuperar com eficiência grandes seleções do MySQL usando chunking?

Como posso recuperar com eficiência grandes seleções do MySQL usando chunking?

Publicado em 2024-11-09
Navegar:136

How can I efficiently retrieve large MySQL selects by using chunking?

Recuperar seleções grandes do MySQL com eficiência com fragmentação

O manuseio de grandes conjuntos de dados no MySQL muitas vezes pode levar a problemas de memória durante a recuperação de dados. Para resolver isso, o chunking oferece uma solução eficaz.

Técnica de chunking

Chunking envolve dividir uma consulta de seleção grande em subconjuntos menores. Ao fazer isso, você pode processar os dados em porções gerenciáveis, evitando limitações de memória.

Considere este exemplo:

SELECT * FROM MyTable ORDER BY whatever LIMIT 0,1000;

Esta consulta recupera as primeiras 1.000 linhas de MyTable. Para recuperar os próximos 1.000, você aumentaria o deslocamento LIMIT:

SELECT * FROM MyTable ORDER BY whatever LIMIT 1000,1000;

Maintaining Row Order

Para garantir que a ordem das linhas seja mantida, crie uma tabela temporária como um instantâneo da tabela original:

CREATE TEMPORARY TABLE MyChunkedResult AS (
  SELECT *
  FROM MyTable
  ORDER BY whatever
);

Esta tabela temporária manterá os dados ordenados enquanto você agrupa os resultados:

SELECT * FROM MyChunkedResult LIMIT 0, 1000;

Incremente o deslocamento LIMIT para blocos subsequentes .

Considerações

  • Considere usar tamanhos de blocos maiores para menos iterações.
  • Determine o tamanho de bloco ideal com base em seu conjunto de dados e servidor específicos recursos.
  • Descarte a tabela temporária após concluir o processo de chunking.

Ao implementar esta técnica de chunking, você pode efetivamente recuperar grandes resultados de seleção do MySQL em pedaços, evitando problemas de memória e melhorando o desempenho .

Tutorial mais recente Mais>

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