Przejdź do treści

MySQL – optymalizacja i wydajność

O pracy MySQL DBA – przemyślenia administratora

Już chwilę temu Amazon wymyślił coś takiego, jak RDS. Jeśli ktoś nie miał z tym czymś styczności, to w skrócie napiszę, że jest to MySQL w chmurce. Nie przejmujemy się upgrade MySQL, łataniem błędów, ustawianiem replikacji, odzyskiwaniem z backupu. Wszystko robione jest ładnie przy pomocy panelu administracyjnego w AWS.

czytaj dalej…

Amazon, no cóż. Koń jaki jest, każdy widzi. Pamięci na instancjach mało, zwykłe EBS’y są koszmarnie wolne, rejony padają co parę miesięcy (szczególnie mój ulubiony US East). Przesadzam, fakt, ale pracując z większą ilością instancji w Amazonie trudno nie narzekać od czasu do czasu. Faktem jest też to, że w pewnych sytuacjach Amazon błyszczy.

czytaj dalej…

Dłuższa chwila minęła od ostatniego postu. Niestety, obawiam się że częstotliwość raczej się nie zwiększy znacząco. Przyczyną jest zwykły, prozaiczny brak czasu. Postaram się jednak od czasu do czasu wrzucić coś nowego na bloga. Dziś o profilowaniu alokacji pamięci przez MySQL

czytaj dalej…

Mam nadzieję, że tytuł mi się udał i przyciągnął kilku ciekawych :) Jak pewnie przynajmniej część czytelników wie, kilka miesięcy temu zmieniłem pracę. Obecnie pracuję w PalominoDB – firmie, która świadczy wsparcie dla szerokiej gamy usług. Głównie MySQL, ale poza nim cała masa innych – Cassandra, HBase, CouchBase, MongoDB, Membase i tak dalej i tak dalej.

Cały czas poszukujemy ludzi, którzy chcieli by się przyłączyć do zespołu. Na ten moment głównie chodzi o  naszą, europejską strefę czasową, ale oczywiście nie tylko. Dobra znajomość MySQL jest konieczna, bo to podstawa działalności większości klientów. Każda dodatkowa znana technologia to duży plus. Co jasne, angielski musi być. Nie koniecznie perfekcyjnie płynny, ale na pewno komunikatywny w mowie i w piśmie. W zamian za to otrzymujemy możliwość pracy z każdego miejsca na świecie, gdzie tylko jest sensowny zasięg 3G, bądź też internet po kablu. Do tego niezłe pieniądze i świetny zespół doświadczonych administratorów, od których można się uczyć i uczyć i uczyć i…

Gdyby któryś z czytelników chciał się dowiedzieć więcej na temat wymagań, oferty firmy, tego jak wygląda praca i tak dalej, zapraszam serdecznie do kontaktu przez formularz: http://blog.ksiazek.info/kontakt/ Chętnie odpowiem na każde pytanie.

Dodatkowe informacje, w tym to, o co dokładnie w PalominoDB chodzi, można znaleźć na stronie firmy: http://www.palominodb.com

Chciałbym się odnieść do komentarza umieszczonego pod poprzednim postem przez Marcina. Zacząłem pisać odpowiedź, ale okazało się, że trochę się rozpisałem i dlatego też umieszczam ją jako post a nie komentarz.

czytaj dalej…

Chwilę temu umieściłem na tym blogu kilka różnych wpisów porównujących działanie i wydajność silników InnoDB i MyISAM. Są to konkretnie poniższe posty:

http://blog.ksiazek.info/2010/08/11/roznice-pomiedzy-myisam-i-innodb-wydajnosc/
http://blog.ksiazek.info/2010/08/17/co-jest-szybsze-myisam-czy-innodb/
http://blog.ksiazek.info/2010/08/23/roznice-pomiedzy-myisam-i-innodb-odpornosc-na-awarie/
http://blog.ksiazek.info/2010/08/29/roznice-pomiedzi-myisam-i-innodb-backup/
http://blog.ksiazek.info/2010/09/04/roznice-pomiedzy-myisam-i-innodb-high-availability/

czytaj dalej…

XtraBackup to bardzo przyjemne narzędzie do wykonania szybkiego i “gorącego” binarnego backupu dla InnoDB i MyISAM. Znakomicie nadaje się do przygotowania pełnej kopii całego serwera bazodanowego, w szczególności do kopii, którą chcemy następnie używać jako slave. Ten wpis to takie proste, krok po kroku, how-to.

czytaj dalej…

Wyłapaliśmy jakieś niewydajne zapytanie, chcemy je poprawić. Wiąże się to oczywiście z testowaniem różnorakich jego wersji – raz dodajemy podzapytanie, raz zmieniamy je na JOIN, raz przesuwamy podzapytanie z WHERE do listy kolumn. Różne sposoby są stosowane w różnych przypadkach. To, co jest wspólne, to nasza chęć do sprawdzenia, czy aby na pewno nowa wersja zapytania jest wydajniejsza niż stara. Post ten traktować będzie o tym, na co należy w takiej sytuacji zwrócić uwagę.
czytaj dalej…

Otrzymałem ostatnio maila od jednego z czytelników, który dopytuje się w jaki sposób można przeiterować po danych w tabeli – chodzi o wykonanie operacji typu:

FOR rekord IN tabela.kolumna DO cokolwiek

Czytelnik ten zauważył, że w przypadku funkcji i procedur składowanych w MySQL nie ma możliwości zastosowania pętli FOR. Faktycznie, tak jest w istocie – tego typu składnia nie istnieje. Można natomiast zrobić coś innego – możemy wykorzystać kursor.
czytaj dalej…

Kilka dni temu jeden z developerów pracujących nad MariaDB wykrył poważny problem. W pewnych sytuacjach MySQL umożliwia zalogowanie się do bazy przy pomocy niewłaściwego hasła. Czy ten bug dotyczy danej wersji MySQL zależy w sporej mierze od tego, w jaki sposób była kompilowana. Więcej informacji na ten temat można znaleźć w poniższych linkach:

http://seclists.org/oss-sec/2012/q2/493

https://community.rapid7.com/community/metasploit/blog/2012/06/11/cve-2012-2122-a-tragically-comedic-security-flaw-in-mysql

Problem jest o tyle poważny, że jeśli dana instancja MySQL jest podatna na tą lukę, to teoretycznie wystarczy 256 prób logowania się z jakimkolwiek hasłem aby dostać się do bazy. Z resztą, uruchomienie prób logowania w nieskończonej pętli nie stanowi żadnego problemu.

Drodzy Czytelnicy, testujcie swoje serwery MySQL i, w razie konieczności, róbcie pilny upgrade. MySQL w wersjach 5.1.63 i 5.5.24 nie są już podatne.