piu Ottimizza mySql per una colonna di modifica della tabella alternativa più veloce



eliminare tabella phpmyadmin (3)

Bene, mi sento di raccomandare di usare le ultime build di Percona MySQL in più, dato che c'è la seguente nota nel manuale di MySQL

In altri casi, MySQL crea una tabella temporanea, anche se non è necessario copiare i dati. Per le tabelle MyISAM, è possibile velocizzare l'operazione di ri-creazione dell'indice (che è la parte più lenta del processo di modifica) impostando la variabile di sistema myisam_sort_buffer_size su un valore elevato.

È possibile fare prima ALTER TABLE DISABLE KEYS , quindi aggiungere la colonna e poi ALTER TABLE ENABLE KEYS . Non vedo nulla può essere fatto qui.

A proposito, non puoi andare a MongoDB? Non ricostruisce nulla quando si aggiunge una colonna.

https://ffff65535.com

Ho una tabella che ha 170,002,225 righe con circa 35 colonne e due indici. Voglio aggiungere una colonna. Il comando alter table ha richiesto circa 10 ore. Né il processore sembrava occupato durante quel periodo né erano presenti eccessive attese di IO. Questo è su una scatola ad alte prestazioni a 4 vie con tonnellate di memoria.

È questo il meglio che posso fare? C'è qualcosa che posso guardare per ottimizzare la colonna aggiungi nella messa a punto del db?


Forse è possibile rimuovere l'indice prima di alterare la tabella, perché ciò che è richiesto per la maggior parte del tempo è l'indice?


ALTER TABLE in MySQL creerà una nuova tabella con un nuovo schema, quindi reinserirà tutti i dati ed eliminerà la vecchia tabella. Potresti risparmiare un po 'di tempo creando la nuova tabella, caricando i dati e rinominando la tabella.

Da "High Performance MySQL book" (i percona ragazzi):

Il solito trucco per caricare la tabella MyISAM in modo efficiente è disabilitare le chiavi, caricare i dati e rinominare le chiavi:

mysql> ALTER TABLE test.load_data DISABLE KEYS;
-- load data
mysql> ALTER TABLE test.load_data ENABLE KEYS;




alter