mysqldump já usa uma opção chamada --extended-insert . Isso agrupará uma série de registros que podem ser carregados em um único comando INSERT. Embora você não possa usar mysqldump para controlar o número de linhas a serem agrupadas, você pode analisar um mysqldump. Claro, isso significa que você terá que criar um script na linguagem de sua escolha (Python, Perl, C++, etc).
Para qualquer tabela em um mysqldump de um único banco de dados, você verá o seguinte paradigma:
CREATE TABLE
LOCK TABLE
INSERT INTO ...
INSERT INTO ...
INSERT INTO ...
...
...
INSERT INTO ...
INSERT INTO ...
UNLOCK TABLES;
Você pode analisar o mysqldump da seguinte maneira:
Step01: Obtenha o próximo nome da tabela no mysqldump
Step03: Se você encontrar UNLOCK TABLES;, vá para Step01
Step04: Se você não tiver mais tabelas, está feito
Passo 05: Vá para o Passo 02
Cada comando INSERT que você lê tem um certo número de linhas. Esse número você não pode controlar, a menos que crie um script para colocá-los juntos no número de linhas que escolher. Eu desaconselharia que o mysqld decidisse o melhor número de linhas para aquele lote específico, dadas as definições de configuração atuais (talvez o max_allowed_packet )
SUGESTÃO #2: Use --skip-extended-inserte agrupe-os do seu jeito
Ao desativar --extended-insert , cada comando INSERT terá uma linha. Você pode coletar as linhas usando um script e coletar quantas linhas quiser.
RESSALVAS
Seja um pouco conservador quanto ao número de linhas que você escolhe agrupar em lotes.
Você levará muito mais tempo para analisar o mysqldump porque o mysqldump será muito mais longo.
Aqui está algo que você pode achar intrigante
SUGESTÃO #1: Deixe o mysqldump criar os lotes
mysqldump já usa uma opção chamada --extended-insert . Isso agrupará uma série de registros que podem ser carregados em um único comando INSERT. Embora você não possa usar mysqldump para controlar o número de linhas a serem agrupadas, você pode analisar um mysqldump. Claro, isso significa que você terá que criar um script na linguagem de sua escolha (Python, Perl, C++, etc).
Para qualquer tabela em um mysqldump de um único banco de dados, você verá o seguinte paradigma:
Você pode analisar o mysqldump da seguinte maneira:
INSERT INTO
ouUNLOCK TABLES;
UNLOCK TABLES;
, vá para Step01Cada comando INSERT que você lê tem um certo número de linhas. Esse número você não pode controlar, a menos que crie um script para colocá-los juntos no número de linhas que escolher. Eu desaconselharia que o mysqld decidisse o melhor número de linhas para aquele lote específico, dadas as definições de configuração atuais (talvez o max_allowed_packet )
SUGESTÃO #2: Use
--skip-extended-insert
e agrupe-os do seu jeitoAo desativar --extended-insert , cada comando INSERT terá uma linha. Você pode coletar as linhas usando um script e coletar quantas linhas quiser.
RESSALVAS
Pode-se também considerar o mysqldump com a opção --where para criar vários dumps menores.
Depende de um esquema.