Sono uno sviluppatore di PHP, quindi non essere severo. Ho un grande tavolo ~ 5,5 gb di discarica. Il nostro PM ha deciso di creare una nuova colonna per eseguire nuove funzionalità. Table è InnoDB, quindi quello che ho provato:
Modifica la tabella sullo schermo con il blocco della tabella. Ci sono voluti circa 30 ore e niente. Quindi l'ho appena fermato. Innanzitutto ho fatto un errore perché non ho terminato tutte le transazioni, ma la seconda volta non è stato un multilock. Lo stato era
copy to tmp table
.Dato che devo applicare anche il partizionamento per questa tabella, decidiamo di creare un dump, rinominare e creare una tabella con lo stesso nome e la nuova struttura. Ma la discarica sta facendo una copia rigorosa (almeno non ho trovato qualcos'altro). Quindi ho aggiunto per scaricare una nuova colonna
sed
e interrogarla. Ma iniziarono alcuni strani errori. Credo che sia stato causato da charset. La tabella in utf-8 e il file sono diventati us-ascii doposed
. Quindi ho ricevuto errori (comando sconosciuto '\' ') sul 30% dei dati. Quindi anche questo è un brutto modo.
Quali sono le altre opzioni per ottenere questo risultato e velocizzare le prestazioni (posso farlo con lo script php, ma ci vorranno anni). Quale sarà la prestazione INSERT SELECT
in questo caso.
Grazie per qualsiasi anticipo.
SET NAMES utf8
eCOLLATION
.Ma meh idk perché il 30% dei dati danneggiati doposed
. Penso che il carico di massa sarà il più veloce, ma forse esiste qualcosa in più che mi manca. Grazie Marco