Mysql
 sql >> Base de Dados >  >> RDS >> Mysql

Python:O que há de errado com meu código de vários processos inserindo no MySQL?


Sim, se você estiver inserindo em massa 300 milhões de linhas na mesma tabela, não tente paralelizar essa inserção. Todas as inserções devem passar pelos mesmos gargalos:atualizar o índice e gravar no arquivo físico no disco rígido. Essas operações requerem acesso exclusivo aos recursos subjacentes (o índice ou a cabeça do disco).

Na verdade, você está adicionando alguma sobrecarga inútil no banco de dados, que agora precisa lidar com várias transações simultâneas. Isso consome memória, força a troca de contexto, faz a cabeça de leitura do disco pular o tempo todo e assim por diante.

Insira tudo no mesmo fio.

Parece que você está realmente importando dados de um tipo de arquivo CSV. Você pode usar o LOAD DATA INFILE Comando MySQL, projetado para este propósito. Descreva seu arquivo de origem se precisar de ajuda para ajustar este comando.