sql >> Databasteknik >  >> RDS >> Mysql

ALTER TABLE ADD COLUMN tar lång tid

Din ALTER TABLE uttalandet antyder att mysql måste skriva om varje enskild rad i tabellen inklusive den nya kolumnen. Eftersom du har mer än 2 miljoner rader, skulle jag definitivt förvänta mig att det tar en betydande tid, under vilken din server sannolikt mestadels kommer att vara IO-bunden. Du brukar tycka att det är mer presterande att göra följande:

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å så sätt lägger du till kolumnen i den tomma tabellen och skriver i princip data i den nya tabellen som du är säker på att ingen annan kommer att titta på utan att låsa så mycket resurser.



  1. Visa poster från nu() till nästa 7 dagar i mysql

  2. Hur man förbättrar MySQL AWS-prestanda 2X över Amazon RDS till samma kostnad

  3. Android SQLite:Hur genererar man en stor tabell för teständamål?

  4. Hur importerar man CSV-fildata till en PostgreSQL-tabell?