Moduł 04
Transkrypt
Moduł 04
Administracja bazami danych dr inż. Grzegorz Michalski Na podstawie wykładów dra inż. Juliusza Mikody Narzędzia – myisamchk myisamchk – narzędzie służy do pobierania informacji o tabeli, kontroli, naprawy lub optymalizacji. myisamchk pracuje z bazami typu MyISAM (.MYD i .MYI). Wywołanie: myisamchk [ options ] tbl_name Opcje: --analyze – analiza rozkładu kluczy --check – przeglądanie tabeli w poszukiwaniu błędów --correct-checksum – naprawa sum kontrolnych tabeli Narzędzia – myisamchk Opcje: --description – wypisuje informacje o tabeli --extend-check – odzyskanie możliwych rekordów tabeli --extended-check – dokładna kontrola tabeli --information – statystyki tabeli --set-character-set=name – zmiana kodowania tekstu --sort-index – przyspieszenie działania indeksów Narzędzia – mysqlcheck mysqlcheck - narzędzie do sprawdzania, naprawy, optymalizacji oraz analizy tabel. --auto-repair – automatyczna naprawa tabeli --compress – kompresja danych wymienianych z serwerem --optimize – optymalizacja tabel --user=user_name, -u – nazwa użytkownika --password[=password], -p – hasło użytkownika Narzędzia administratora • myisam_ftdump • myisamlog – informacje o indeksach tabeli MyISAM – wyświetla zawartość logów MyISAM • myisampack – tworzenie skompresowanej tabeli MyISAM – tylko do odczytu (kompresja 40% - 70%) • mysqlhotcopy – program służy do wykonania kopi bazy danych – kopia danych binarnych Narzędzia administratora • innochecksum - program wyświetla sumę kontrolną dla plików bazy danych InnoDB • mysql_convert_table_format – zmiana silnika zapisu danych • mysql_find_rows – program przeszukujący skrypty SQL pasujące do wyrażenia Partycjonowanie • Czym jest partycja w przypadku MySQL? • Podział jest dokonywane przez funkcję partycjonującą • dopasowanie do przedziału • dopasowanie do zestawu wartości • funkcja haszująca • Partycjonowanie tabele nie są zgodne pomiędzy wersjami 5.1.6 (i późniejszymi), a wersjami poprzednimi Partycjonowanie • Typy partycjonowania w MySQL • RANGE – zasięg – przydziela rekordy do partycji na podstawie wartości kolumn zawierające się w określonych przedziałach • LIST – lista – wartości kolumn pasujące do jednej z kilku wartości listy • HASH • KEY – haszowanie – klucz Partycjonowanie • Główne zalety partycjonowania • zwiększenie • obsługa wydajności bazy danych dużych tabel jest szybsze • usuwanie partycji (dla usunięcia określonych danych) jest łatwe i nie wpływa na pozostałe dane tabeli • ograniczenie rozmiaru pliku w systemie plików Partycjonowanie Składnia polecenia: CREATE TABLE <tbl_name> (<tbl_column_opt) ENGINE = <engine_name> PARTITION BY <type> (<partition_expression>); Partycjonowanie - RANGE CREATE TABLE tr (id INT, name VARCHAR(50), purchased DATE) PARTITION BY RANGE( YEAR(purchased) ) ( PARTITION p0 VALUES LESS THAN (1990), PARTITION p1 VALUES LESS THAN (1995), PARTITION p2 VALUES LESS THAN (2000), PARTITION p3 VALUES LESS THAN (2005)); Partycjonowanie - LIST CREATE TABLE tt ( id INT, data INT) PARTITION BY LIST(data) ( PARTITION p0 VALUES IN (5, 10, 15), PARTITION p1 VALUES IN (6, 12, 18) ); Partycjonowanie - HASH CREATE TABLE clients ( id INT, fname VARCHAR(30), lname VARCHAR(30), signed DATE ) PARTITION BY HASH( signed ) PARTITIONS 12; Partycjonowanie - KEY CREATE TABLE k1 ( id INT NOT NULL PRIMARY KEY, name VARCHAR(20) ) PARTITION BY KEY() PARTITIONS 2; Partycjonowanie - zmiany create table tab (id int(11), dt date); select count(*) from tab where dt > date '1995-01-01' and dt < date '1995-12-31'; 41.11 sec alter table tab partition by range (year(dt)) ( PARTITION p1 VALUES LESS THAN (2000), PARTITION p2 VALUES LESS THAN (2010)); 20.42 sec Partycjonowanie Główne ograniczenia wszystkie partycje muszę używać tego samego mechanizmu składowania maksymalna liczba partycji dla tabeli to 1024 tabele typu memory nie mogą być partycjonowane nie jest możliwe partycjonowanie tabeli z logami