sql >> Database >  >> RDS >> Mysql

WIJZIG TABEL TOEVOEGEN KOLOM duurt lang

Uw ALTER TABLE verklaring houdt in dat mysql elke rij van de tabel opnieuw moet schrijven, inclusief de nieuwe kolom. Aangezien je meer dan 2 miljoen rijen hebt, zou ik zeker verwachten dat het een aanzienlijke hoeveelheid tijd kost, waarin je server waarschijnlijk grotendeels IO-gebonden zal zijn. Normaal gesproken zult u merken dat het effectiever is om het volgende te doen:

CREATE TABLE main_table_new LIKE main_table;
ALTER TABLE main_table_new ADD COLUMN location VARCHAR(256);
INSERT INTO main_table_new SELECT *, NULL FROM main_table;
RENAME TABLE main_table TO main_table_old, main_table_new TO main_table;
DROP TABLE main_table_old;

Op deze manier voegt u de kolom toe aan de lege tabel en schrijft u in feite de gegevens in die nieuwe tabel waarvan u zeker weet dat niemand anders ernaar zal kijken zonder zoveel bronnen te vergrendelen.



  1. SQL Server - definiëren van een XML-type kolom met UTF-8-codering

  2. Meertalige velden in DB-tabellen

  3. Hoe invoegen in dezelfde tabel in MySQL?

  4. SQL WHERE-component die overeenkomt met waarden met volgspaties