Copyright © 2019 MariaDB. All rights reserved.

Bambini Nike Scarpe Basic Da Nere Bambine Nylon Ginnastica Cortez CwqwF7f

Questo articolo descrive diverse tecniche per inserire i dati velocemente in MariaDB.

Panoramica

Quando si inseriscono nuovi dati in MariaDB, le operazioni che richiedono più tempo sono, in ordine di importanza:

Nike Scarpe Taglia Socfly 11 Libera Pack Tramonto Uomo Sd 5
  • Sincronizzare i dati su disco (alla fine delle transazioni)
  • Aggiungere nuovi valori alle chiavi. Più grande è un indice, più tempo richiede il suo aggiornamento.
  • Controllare le chiavi esterne (se esistono).
  • Aggiungere righe allo storage engine.
  • Inviare dati al server.

Questa pagina descrive le differenti tecniche (anch'esse in ordine di importanza) per inserire velocemente i dati in una tabella.

Disabilitare gli indici

E' possibile disabilitare temporaneamente gli indici non unici. Questa operazione è utile soprattutto quando la tabella nella quale si stanno inserendo i dati contiene poche righe o nessuna.

ALTER TABLE nome_tabella DISABLE KEYS;
BEGIN;
... inserimento dati con INSERT o LOAD DATA ....
COMMIT;
ALTER TABLE nome_tabella ENABLE KEYS;

In molti storage engine (almeno MyISAM, Aria e InnoDB/XtraDB), ENABLE KEYS opera scansionando le righe e collezionando le chiavi, ordinandole e creando blocchi di indici. Ciò è esponenzialmente più rapido che creare gli indici una riga alla volta e utilizza meno memoria per il buffer delle chiavi.

Nota: Quando si inseriscono righe in una tabella vuota con INSERT o LOAD DATANike Pack Taglia 5 Tramonto 11 Libera Sd Uomo Scarpe Socfly, MariaDB esegue automaticamente un DISABLE KEYS prima dell'inserimento e un ENABLE KEYSBrillantini Scarpe Con Iqp8xvq7 Zeppa E Nike qROrwx4YHq alla fine. <</style>

Caricare file di testo

Il modo più veloce per inserire dati in MariaDB è il comando LOAD DATA INFILE.

La forma più semplice è:

LOAD DATA INFILEGrande Biancogrigionerod Air Uomo Nike Scarpe Max 90 Squalo EaFqzxWf 'nome_file' INTO TABLE nome_tabella;

Si può anche leggere un file localmente, nella macchina sulla quale è in esecuzione il client:

LOAD DATA LOCAL Nike Disponibili Su Da Sportswear Zalando Pantaloni Donna EqwOAH7ZINFILE 'nome_file' INTO TABLE nome_tabella;

Questa operazione non è altrettanto rapida che leggere un file che si trova sul server, ma la differenza non è poi così grande.

LOAD DATA INFILE è molto rapido perché:

  1. Si evita il parsing di istruzioni SQL.
  2. I dati vengono letti in grandi blocchi..
  3. Se all'inizio dell'operazione la tabella è vuota, tutti gli indici non unici vengono disabilitati temporaneamente.
  4. Il server chiede allo Storage Engine di copiare le righe in una cache e inserirle in grandi blocchi (almeno MyISAM e Aria sono in grado di farlo).
  5. Per le tabelle vuote, alcuni SE transazionali (come Aria) non registrano i dati inseriti nel log delle transazioni, perciò è possibile effettuare il rollback dell'operazione con un semplice TRUNCATE.

Per i motivi appena illustrati, generalmente, se si devono inserire Felpa Nera Scuderistore Con Nike Cappuccio Zip E Donna 0rxrTwqBYPmolte righe in una volta può essere più rapido creare un file localmente, copiare le righe al suo interno e infine usare LOAD DATA INFILE per caricarle, piuttosto che utilizzare INSERT.

MariaDB 5.3 supporta anche il progress reporting per LOAD DATA INFILE.

mysqlimport

E' possibile importare molti file in parallelo con mysqlimport. Per esempio:

mysqlimport Libera Socfly Taglia Tramonto Pack Scarpe Sd Uomo Nike 5 11--use-threads=10 database nome_file [nome_file...]

Internamente, mysqlimport utilizza LOAD DATA INFILE per leggere i dati.

Inserire i dati con il comando INSERT

Usare grandi transazioni

Quando si usano molte INSERT di un solo record, è possibile racchiuderle in BEGIN / END per evitare che per ogni riga avvenga una transazione completa (che include anche la sincronizzazione su disco). Per esempio, eseguire 1000 inserimenti alla volta velocizzerà l'operazione di quasi 1000 volte.

BEGIN;
INSERT ...
Grande Selezione Promozioni Da Scarpe Nike Fresco Ginnastica Uomo TOBqRYxzwINSERT ...
END;
BEGINTempo Sport Donna Nike Libero 914414 it Amazon Con Cappuccio E Felpa 0UwUqI;
INSERT ...
INSERT ...
END;
...

La ragione per cui è meglio usare diversi BEGIN/END invece di uno solo è che il primo metodo usa meno spazio nel log delle transazioni.

Sd Socfly Nike Pack 5 Uomo Libera Taglia Scarpe 11 Tramonto

INSERT multi-riga

E' possibile inserire molte righe in una volta con una sola istruzione:

INSERT INTO nome_tabella values(1,"row 1"),(2, Rossogrigionero Max Scarpe Nike Basse Air Bambini Gs H7u8qn Command PqwTC"row 2"),...;

Il massimo di dati che è possibile inserire in una singola istruzione è determinato dalla variabile server max_allowed_packet.

Inserire dati in diverse tabelle in una volta

Se si necessita di inserire i dati in diverse tabelle in una sola volta, il modo migliore è abilitare le istruzioni multi-riga e inviare al server molte INSERT insieme:

INSERTUomo 5 Socfly Tramonto Sd Taglia 11 Pack Scarpe Nike Libera INTO tabella1 (chiave_auto_increment, dati) VALUES (NULL, "riga 1");
INSERT001 ao1775 Men's Sneakers Ebernon Black 11 Low Uk Nike Leather 60wqP4Tx INTO tabella2 (chiave_auto_increment, riferimento, dati) VALUES 
(NULL, LAST_INSERT_ID(), "riga 2");

LAST_INSERT_ID() è una funzione che restituisce l'ultimo valore auto_increment inserito.

Si noti che, per default, il client da riga di comando Fluorescente Marchio Uomo Fabbrica Xc Victory 3 Nike verde Scarpa Aq7Aw0aZxmysql tenta di dividere l'istruzione sopra in più comandi.

Per testarlo nel client mysql:

delimiter ;;
select 1; select 2;;
delimiter ;

Nota: perchè le istruzioni multi-query funzionino, occorre specificare il flag CLIENT_MULTI_STATEMENTS del client come mysql_real_connect().

Variabili server utili per migliorare la velocità

Nike Jordan Grandinetti Uomo Adidas Sport Sw4xnuq Felpe Scontate Online IRwwOdTxAq
OpzioneDescrizione
innodb-buffer-pool-sizeDa incrementare se si hanno molti indici nelle tabelle InnoDB/XtraDB
key_buffer_sizeIncrementarlo se si hanno molti indici nelle tabelle MyISAM
max_allowed_packetIncrementarlo per consentire istruzioni multi-INSERT più lunghe
read_buff_sizeDimensioni dei blocchi di righe letti dal comando LOAD DATA

Si verano le opzioni di mysqld per una lista completa delle variabili server.

Ebay Air Nike Calda Scarpe 270 Max Nere Vendita Uomo 2018 B1w7nqEI

Commenti

Sto caricando i commenti......