Przejdź do treści

MySQL – optymalizacja i wydajność

O pracy MySQL DBA – przemyślenia administratora

W poprzednim poście opisywałem znaczenie poszczególnych wartości zbieranych przez MySQL w parametrach Handler_read_*. Dziś parę słów dlaczego te dane są tak przydatne?
czytaj dalej…

Dziś, pokrótce, chciałbym opisać pewne parametry, które pojawiają się w statusie MySQL, a które mogą być bardzo przydatne do zorientowania się, co słychać w bazie danych. Dane te można odczytać przy pomocy polecenia SHOW STATUS, informacja w nich zawarta dotyczy tego, co dokładnie działo się na poziomie silnika bazodanowego. Mowa będzie dziś o danych zawartych w parametrach Handler_read_*.
czytaj dalej…

Jeśli ktoś śledzi agregator blogów o MySQL, czyli po prostu Planet MySQL, miał okazję ostatnio dowiedzieć się sporo nowości na temat MySQL 5.6. 10 kwietnia Oracle wydało kolejny milestone na drodze do stabilnej wersji MySQL. W tym poście chciałbym podzielić się kilkoma uwagami w tym właśnie temacie.
czytaj dalej…

Ostatnio miałem okazję natknąć się na bardzo specyficzny “feature” InnoDB dotyczący autoinkrementacji. Jako że InnoDB będzie coraz częstszym gościem na serwerach MySQL, dobrze wiedzieć jakie ma specyficzne zwyczaje. Szczególnie że ten konkretny nie jest ani logiczny, ani intuicyjny, ani nie zawiera nawet ślad sensu. Trzeba jednak jakoś sobie radzić.
czytaj dalej…

Deadlock

Mar 16

Jeśli stosujemy transakcje możemy się natknąć na następujący błąd:

ERROR 1213 (40001): Deadlock found when trying to get lock; try restarting transaction

Co to za dziwo ten deadlock i co się z nim robi?
czytaj dalej…

Jeden z Czytelników zadał mi następujące pytanie. Co jest lepszym rozwiązaniem: skomplikowany SELECT z JOINami, widok czy może procedura składowana? Na tak postawione pytanie nie da się łatwo odpowiedzieć, dlatego też pozwoliłem sobie odpowiedzieć w tym właśnie poście.
czytaj dalej…
W teorii najlepiej by było, gdyby każda z usług znajdowała się na osobnym serwerze. MySQL na dedykowanej dla siebie maszynie, Apache czy inny serwer WWW na osobnej, ewentualna inna baza danych także na czymś wydzielonym. W praktyce zazwyczaj nie jest to możliwe (bądź nie jest to opłacalne) i serwery są współdzielone pomiędzy usługami. Na co trzeba w takiej sytuacji zwrócić uwagę?
czytaj dalej…

Chwilę temu wspominałem o fakcie, iż MariaDB w wersji 5.3 wprowadziła optymalizacje dotyczące działania podzapytań. Dziś chciałbym podzielić się kilkoma dodatkowymi informacjami na ten temat. Niestety, nie jestem w stanie podać dokładnych cyfr, jako że w tej kwestii obowiązują mnie pewne ograniczenia, ale myślę, że mimo wszystko ten post będzie przydatny.
czytaj dalej…

W trakcie ostatnich kilku tygodni nie bardzo miałem czas na pisanie na blogu, chciałbym jednak zapewnić, że blog nie umarł. Dziś tak kilka przemyśleń dotyczących planowania struktury bazy danych i rodzajów zapytań. Może będzie to komuś przydatne.
czytaj dalej…

Ostatnimi czasy miałem sporo styczności z zapuszczonymi bazami danych, dlatego też chcę się podzielić z drogimi Czytelnikami kilkoma przemyśleniami na ten temat. Regularne doglądanie serwisu internetowego i jego bazy danych to ważna, choć często pomijana kwestia.

O co chodzi? Standardowa procedura wdrażania serwisu internetowego wygląda następująco. Pierwszy krok to wybór oprogramowania. Drugi, ściągnięcie go i instalacja na serwerze. Trzeci – konfiguracja serwisu i jego ewentualne dostosowanie do naszych potrzeb. Czwarty – zapomnieć o wszystkim. Tak się niestety nie da.
czytaj dalej…