Różnice pomiędzy wersjami 3 i 4
⇤ ← Wersja 3 z 2016-03-11 14:05:17 →
Rozmiar: 2316
Edytor: wtps0n
Komentarz: + dodanie parsera; dodanie pokazywania struktury tabeli
← Wersja 4 z 2016-03-11 14:42:42 → ⇥
Rozmiar: 2416
Edytor: wtps0n
Komentarz: * wykorzystanie highlight sql
Usunięcia zostały oznaczone w ten sposób. Dodatki zostały oznaczone w ten sposób.
Linia 10: Linia 10:
{{{#!sql numbers=off {{{#!highlight sql numbers=off
Linia 16: Linia 16:
{{{#!sql numbers=off {{{#!highlight sql numbers=off
Linia 21: Linia 21:
{{{#!sql numbers=off {{{#!highlight sql numbers=off
Linia 27: Linia 27:
{{{#!sql numbers=off {{{#!highlight sql numbers=off
Linia 40: Linia 40:
{{{#!sql numbers=off {{{#!highlight sql numbers=off
Linia 45: Linia 45:
{{{#!sql numbers=off {{{#!highlight sql numbers=off
Linia 51: Linia 51:
{{{#!sql numbers=off
EXPLAIN SELECT * FROM `ibf_core_attachments_map` AS `core_attachments_map` WHERE location_key='forums_Forums' AND id1=56489 AND id2=1260029 AND id3 IS NULL;
{{{#!highlight sql numbers=off
EXPLAIN SELECT * FROM `ibf_core_attachments_map` AS `core_attachments_map` WHERE location_key='forums_forums' AND id1=56489 AND id2=1260029 AND id3 IS NULL;
Linia 56: Linia 56:
{{{#!sql numbers=off {{{#!highlight sql numbers=off
Linia 62: Linia 62:
{{{#!sql numbers=off {{{#!highlight sql numbers=off
Linia 68: Linia 68:
{{{#!sql numbers=off {{{#!highlight sql numbers=off



Sztuczki i kruczki związane z mySQL

Sprawdzenie listy procesów

Pokazanie listy procesów w wersji skróconej (początki poleceń SQL):

-- SELECT * FROM aqq;
SHOW FULL PROCESSLIST

Pokazanie listy procesów z pełnymi poleceniami SQL (czasami z bardzo długimi zapytaniami):

SHOW FULL PROCESSLIST

Ustawianie zmiennych

SET [SESSION|GLOBAL] variable=wartość

Naprawianie tabel

Zgodnie z dokumentacją mySQL należy wykonać:

SET SESSION myisam_sort_buffer_size = 256*1024*1024;
SET SESSION read_buffer_size = 64*1024*1024;
SET GLOBAL myisam_max_sort_file_size = 100*1024*1024*1024;
SET GLOBAL repair_cache.key_buffer_size = 128*1024*1024;
CACHE INDEX tbl_name IN repair_cache;
LOAD INDEX INTO CACHE tbl_name;
REPAIR TABLE tbl_name ;
SET GLOBAL repair_cache.key_buffer_size = 0;

Tabele MyISAM oraz indeksy

Dotyczy szczególnie bardzo dużych tabel. Dla operacji INSERT oraz UPDATE warto zdjąć indeksy z takich tabel:

ALTER TABLE tbl_name DISABLE KEYS;

Niemniej trzeba pamiętać, że wykonywanie SELECT-ów z taką ułomną tabelą powoduje bardzo długie zapytania. Można to przywrócić (ale to trwa):

ALTER TABLE tbl_name ENABLE KEYS;

EXPLAIN czyli sprawdzenie co zrobi zapytanie

Aby sprawdzić, jak optymalne jest zapytanie można użyć polecenia EXPLAIN:

EXPLAIN SELECT * FROM `ibf_core_attachments_map` AS `core_attachments_map` WHERE location_key='forums_forums' AND id1=56489 AND id2=1260029 AND id3 IS NULL;

Pokazanie indeksów związanych z tabelą

SHOW INDEXES FROM tbl_name;

Struktura tabeli

Domyślnie pokazanie samych kolumn:

-- describe jest aliase dla show columns
DESCRIBE tbl_name

Albo w wersji jak tabela została utworzona (wraz z indeksami, kodowaniem znaków, etc.):

SHOW CREATE TABLE tbl_name


{i}  (c) 2004 - 2026 BSD Serwis Krzysztof Stryjek. W przypadku błędów, poprawek proszę kontaktować się z administratorem wiki.

MysqlTipsTricks (ostatnio edytowane 2018-12-18 22:17:55 przez wtps0n)