Jakub M.

Jakub M. Scrum Master

Temat: mySQL - alter table, a wydajność

Witam,

mam pytanie związane z modyfikowaniem struktury tabeli. Potrzebuje dodać nowe wartości do kolumny typu 'enum', czyli prosta sprawa 'alter table' itd. Mam pytanie natomiast jak taka operacja może wpłynąć na wydajność serwera, w przypadku, kiedy tabela zawiera ok. 800 000 rekordów. Czy spowoduje tylko chwilowy spadek wydajności, czy może uniemożliwić użytkownikom dostęp do bazy, a może nawet zawieszenie serwera?
Kolejnym pytaniem jest pytanie o to jakie rozwiązanie jest lepsze - korzystanie z typu 'enum' i w razie potrzeby dodawanie nowych wartości za pomocą 'alter table', czy może stworzenie nowej tabeli, w której są trzymane dozwolone wartości? Dodam jeszcze, że tabela, w której istnieje konieczność wykorzystania typu 'enum' jest spora (800 000) a ilość rekordów, będzie cały czas zwiększana.

Dziękuję za pomoc.

Pozdrawiam,
JM.
Piotr P.

Piotr P. Software Developer

Temat: mySQL - alter table, a wydajność

Jakub Milewski:
kiedy tabela zawiera ok. 800 000 rekordów. Czy spowoduje tylko chwilowy spadek wydajności, czy może uniemożliwić użytkownikom dostęp do bazy, a może nawet zawieszenie serwera?

Spowoduje spadek wydajności i uniemożliwi użytkownikom dostęp do bazy danych ( w zależności od wykorzystania tejże tabeli ). W beznadziejnych przypadkach doprowadzi do zawieszenia serwera.
Kolejnym pytaniem jest pytanie o to jakie rozwiązanie jest lepsze - korzystanie z typu 'enum' i w razie potrzeby dodawanie nowych wartości za pomocą 'alter table',

masakra...
czy może stworzenie nowej tabeli, w której są trzymane dozwolone wartości?

W zależności od "big picture" aplikacji i kontekstu danych.

konto usunięte

Temat: mySQL - alter table, a wydajność

Piotr P.:
Jakub Milewski:
kiedy tabela zawiera ok. 800 000 rekordów. Czy spowoduje tylko chwilowy spadek wydajności, czy może uniemożliwić użytkownikom dostęp do bazy, a może nawet zawieszenie serwera?

Spowoduje spadek wydajności i uniemożliwi użytkownikom dostęp do bazy danych ( w zależności od wykorzystania tejże tabeli ). W beznadziejnych przypadkach doprowadzi do zawieszenia serwera.
Kolejnym pytaniem jest pytanie o to jakie rozwiązanie jest lepsze - korzystanie z typu 'enum' i w razie potrzeby dodawanie nowych wartości za pomocą 'alter table',

masakra...
czy może stworzenie nowej tabeli, w której są trzymane dozwolone wartości?

W zależności od "big picture" aplikacji i kontekstu danych.
;)

Jakub:
Nie sądzę, by to miało większe znaczenie, po prostu dodaj dodatkowy stan typu wyliczeniowego, koniecznie na końcu, wtedy wykona się UPDATE wszystkich rekordów.
Gdy wymagane jest więcej informacji o typie obrazka np. dla BOX_SHOT masz wyspecyfikowane WIDTH i HEIGHT to można się zastanowić nad dodaniem jeszcze jednej tabeli.

Pozdrawiam.
Jakub M.

Jakub M. Scrum Master

Temat: mySQL - alter table, a wydajność

Dzięki za pomoc.

Rafał faktycznie miałeś racje nie było czym się przejmować. Zmiana tabeli poszła bezproblemowo. Trwało to jakieś 20-30 sekund, więc nawet jeśli jacyś użytkownicy mieli w tym czasie problem z korzystaniem z serwisu, to jest to nie trwało to długo.

Pozdrawiam,
JM.

Następna dyskusja:

The table mysql.proc is mis...




Wyślij zaproszenie do