sql >> Database teknologi >  >> RDS >> Mysql

ÆNDRING TABEL TILFØJ KOLONNE tager lang tid

Din ALTER TABLE sætning indebærer, at mysql bliver nødt til at omskrive hver eneste række i tabellen inklusive den nye kolonne. Da du har mere end 2 millioner rækker, ville jeg bestemt forvente, at det tager en betydelig mængde tid, hvor din server sandsynligvis for det meste vil være IO-bundet. Du vil normalt opleve, at det er mere effektivt at gøre følgende:

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;

På denne måde tilføjer du kolonnen på den tomme tabel og skriver grundlæggende dataene i den nye tabel, som du er sikker på, at ingen andre vil se på uden at låse så mange ressourcer.



  1. Standardadgangskode for mysql i ubuntu-server 16.04

  2. PostgreSQL Top lærings- og træningsressourcer

  3. Returnerer JSON fungerer ikke korrekt

  4. SQL-sætninger Fejl i java-kode ved brug af Intellij og DB Navigator