Wątek przeniesiony 2023-10-23 12:08 z Bazy danych przez Riddle.

Czy warto zmienić bazę danych z MyISAM a INNODB?

0

Osobno pytałem w innym wątku o przeniesienie dużej bazy danych a jeszcze chciałem zapytać o konwersje bezy.

W instalacji wordpress strony jaką posiadam, jest zainstalowany dodatek LiteSpeed Cache. W jego opcjach widzę komunikat, aby przerobić swoje bazy danych z MyISAM na INNODB. Czy przed przeniesieniem bazy dobrze wykonać taką zmianę? Mam kopie bazy na dysku i waży ponad 500 MB.

W Internecie przeczytałem, że domyślnie dla Wordpress jest obecnie INNODB, ale moja strona ma już lata i wtedy widocznie to było MyISAM. W innych materiałach przeczytałem, że znowu INNODB jest bardziej niezawodna ale może być o wiele większa co do wagi. Moja na MyISAM waży już ponad 500 MB. To nie wiem ile by mogła ważyć po przerobieniu na INNODB i dlaczego.

Jednak czy warto coś takiego zmienić? Oraz czy ten typ baz ma jakieś znaczenia co do bezpieczeństwa stron? Bo komunikat z prośbą o zmianę wyświetla się stale, lecz moja wiedza o bazach jest znikoma, i do tej pory go nie wykonywałem. Czy może powinienem z jakiegoś powodu?

Stronę będę przenosił na nowy serwer za niedługi czas i powoli staram się uprzątać wszystko przed przeniesieniem. Niestety do do samych baz moja wiedza jest niemal zerowa. W niektórych artykułach też widziałem, że może to mieć znaczenie, moja strona pracuje na (silnku baz?) MariaDB.

1

Wiesz jakie sa różnice miedzy jednym a drugim?

0
S4t napisał(a):

Wiesz jakie sa różnice miedzy jednym a drugim?

Tak mają inną nazwę, na tym się dla mnie koczą znane mi różnice. Ale czytałem dużo o tym tekstów na różnych stronach. Z jakiego dla mojego zrozumienia niewiele wynika, poza tym że INNODB są większe, nowocześniejsze, stabilniejsze ale trudniej zrobić ich kopie czy coś takiego, nie blokują edycji (cokolwiek to znaczy). A ta druga forma że jest szybsza w dostępie ale nie zapisie, oraz że jak się sypie to trudniej ja z jakiegoś powodu postawić na nogi. Takie ogólniki tylko co przeczytałem, ale tak jak pisałem w innym temacie - absolutnie się nie znam na bazach danych ich zasadach czy działaniach (po za jakimiś ogólnikami). Znam się na innych rzeczach dość dobrze ale to nie jest związane z tymi zagadnieniami o jakie pytam. Bazy danych dla mnie to najmniej znany obszar. Do tej porty zainstalowałem stronę i działała i działa i tylko tyle wiem o bazach jak je zainstalować w nowej instalacji strony, lub przenieść jak jest dość mała a nie spasiona jak moja obecna.

Chodzi czy jest sens zmiany na coś takiego, i czy powinienem dla wodrpessa? Czy korzystać z tego co mam i nie zmieniać mimo komunikatów z dodatku cache.

1

Nie pękaj, przechodź jak możesz.
Skorzystaj z jakiegoś generatora zapytań do tego jeżeli masz wiele tabel albo zrób to proceduralnie jak w linku poniżej.
https://dba.stackexchange.com/questions/261942/mysql-change-all-tables-engine-from-myisam-to-innodb-with-a-single-query

Niech wielkość bazy Cię nie przeraża. Największa baza Wordpress jaką mam obecnie pod opieką ma 7.5GB i przejście na InnoDB jej tylko pomogło.

0
Destructor napisał(a):

W czym jej pomogło takie przejście? Właśnie waham się, że coś się tam zepsuje i da rade zrobić powrót poprzedniej przez serwer - ale dla mnie dotykanie bazy to zawsze jest stres.

7,5 G - a ja byłem pewny że moje 500 MB jest już skrajnym spaślakiem. To już nie baza to potwór, wiele serwerów nawet nie ma takiej pojemności dyskowej jak ta twoja baza :-D

0
Cimron napisał(a):
Destructor napisał(a):

W czym jej pomogło takie przejście? Właśnie waham się, że coś się tam zepsuje i da rade zrobić powrót poprzedniej przez serwer - ale dla mnie dotykanie bazy to zawsze jest stres.

7,5 G - a ja byłem pewny że moje 500 MB jest już skrajnym spaślakiem. To już nie baza to potwór, wiele serwerów nawet nie ma takiej pojemności dyskowej jak ta twoja baza :-D

Samo przejście nic Ci nie zepsuje, sam raczej też nic nie zepsujesz jeżeli zrobisz to zgodnie ze sztuką (jest dużo tutoriali w necie).

Zalet było wiele, np. row level locking (blokowany do zapisu jest tylko modyfikowany wiersz a nie cała tabela) jest koniecznością gdy masz wiele równoległych zapisów do tej samej tabeli.
Jak masz duży ruch (u nas 1-3M wizyt miesięcznie) to tabela ze statystykami jest atakowana non-stop a statystyki są potrzebne dla reklamodawców itd.

2

Przeczytaj to np.
https://thecamels.org/czym-sie-rozni-innodb-od-myisam/
Jak popatrzysz, do testów użyto bazy 35GB i to ciągle nie jest jakiś kolos.
Z grubsza na InnoDB warto przejść ze względu na bezpieczeństwo danych i w żadnym nowym projekcie jaki robiłem nie używaliśmy już MyISAM. Chociaż w większości staramy się w ogóle rezygnować z MySQL na rzecz Postrgres.
Proponuję Ci iść jednak ze wszystkim stopniowo przy tej migracji. Nie próbuj od razu robić rewolucji na każdym froncie. Będzie strona działać to sobie na spokojnie zmigrujesz do innego silnika. Tak polegniesz.

1

Tajemnica służbowa.
Mogę powiedzieć, że:

  • wp_posts ma 348 536 rekordów i zajmuje 2.4GB
  • wp_postmeta ma 5 048 294 rekordów i zajmuje 3.4 GB

Porównaj ze swoimi. Obliczysz ile twoje mniej więcej zajmą.

1

Panowie udało się, przerobiłem to na INNODB i działa, myślałem że strona wybuchnie. Ale wszystko wydaje się, że działa sprawnie. Ogromnie dziękuję - ponownie @jurek1980 oraz @Destructor za uspokojenie mnie co do tych rozmiarów.

1 użytkowników online, w tym zalogowanych: 0, gości: 1