Pora na chwilę odejść od informacji o nowych rzeczach u nas i podsumowań. Dzisiejszy wpis weźmie na tapet kwestię najczęściej popełnianych błędów przez was, Drodzy Użytkownicy, jeżeli chodzi o kwestię baz danych na hostingu. Przed wami cztery grzechy główne użytkowników MySQL na hostingu współdzielonym.
#1 Nazwy baz danych z kropkami
Nie jest to specjalnie często powtarzany błąd, ale ma on dość poważne konsekwencje, dlatego wylądował na pierwszym miejscu. Przy nazwie bazy danych z kropkami, nie możemy zapewnić wam kopii bezpieczeństwa. Dzieje się tak dlatego, że dla MySQL kropka jest znakiem oddzielającym nazwę samej bazy od nazwy tabeli. Występowanie tego problemu jest poniekąd spowodowane tym, że cPanel wbrew standardom MySQL, dopuszcza po swojej stronie takie nazwy. W skrócie – po prostu nie używajcie kropek, bo i po co?
#2 Polskie znaki w nazwach kolumn
Dobrą praktyką w tworzeniu jakichkolwiek rozwiązań technicznych jest korzystanie z języka angielskiego do nadawania nazw, tyczy się to także kolumn w bazie danych. O ile samo stosowanie polskich znaków w kolumnach nie stanowi problemu samego w sobie, tak dla systemów upewniających się, że kopie waszych baz są poprawne, już tak. Przy tabelach, które posiadają znaki diakrytyczne w nazwach kolumn, dostajemy informację o prawdopodobnym uszkodzeniu tabeli. Tak więc gorąca próba do was, nie róbcie tego :).
#3 Brak indeksów w tabelach
Wraz z tym punktem przechodzimy do czynników, które potrafią napsuć krwi bardziej Wam, niż nam. Indeksy w tabelach są bardzo ważne, usprawniają przeszukiwanie ich pod względem konkretnych danych. Ich brak powoduje to, że baza danych odpowiada wolniej. Potrafi nawet znacząco zwolnić w przypadku dużych tabel. Jeżeli więc tworzycie samodzielnie bazę danych, to dodajcie to jedno pole więcej (zwyczajowo o nazwie id). Warto też sprawdzić bazy tworzone przez popularne skrypty. Aby nie być gołosłownym, po pewnym czasie administratorzy for opartych o phpBB mogą odczuć znacznie wolniejsze działanie wyszukiwarki. Wspomniany skrypt w tabelach odpowiedzialnych za działanie wyszukiwania nie stosuje indeksów, co przy dynamicznie rosnącej tabeli, szybko da o sobie znać pod postacią spowolnienia strony.
Podsumowując, jeżeli podejrzewacie wolne działanie MySQL, zacznijcie od sprawdzenia, czy w waszej bazie każda tabela ma indeks. W phpmyadmin jest to o tyle proste, że po otworzeniu takiej tabeli, zostanie wyświetlone ostrzeżenie.
#4 Korzystanie z jednego/głównego użytkownika MySQL
Bardzo częstym zgłoszeniem, jakie od was otrzymujemy, jest to, że połączenie do bazy danych „nagle” przestało działać. Często powodem takiego zdarzenia jest to, że korzystacie z głównego konta MySQL (o nazwie waszego konta – loginu) i po zmianie hasła do cPanel, dane do połączenia przestają być poprawne. Jeżeli jest to poprawiane przez jednego z naszych techników, to zazwyczaj od razu tworzy on osobnego użytkownika, aby zabezpieczyć stronę przed powtórką w przyszłości.
Bardzo podobnym problemem jest wykorzystywanie tylko jednego użytkownika baz danych na kilku stronach. Na naszym hostingu obowiązują pewne limity na MySQL nakładane na każdego użytkownika baz z osobna. Jeżeli macie kilka stron (nawet jeśli korzystają z jednej bazy, bo i to się zdarza) to ustawcie im osobnych użytkowników MySQL. Macie ich nieograniczoną ilość, tak więc nic na tym nie tracicie, a wręcz przeciwnie. Rozgraniczenie stron, tak aby korzystały z różnych kont MySQL, pomoże także w ewentualnym wskazaniu źródła dużego ruchu, gdy zapytacie o to poprzez wiadomości.
Mam nadzieję, że wytrzymaliście do tego miejsca. Starałem się napisać to przystępnym i nietechnicznym językiem. Jeżeli spodoba wam się poruszanie bardziej technicznych tematów na blogu WEBD.pl, to będziemy takowe umieszczać częściej Wasz Admin.