Różnice pomiędzy wersjami 1 i 3 (Spinanie 2 wersji)
⇤ ← Wersja 1 z 2016-02-27 00:50:28 →
Rozmiar: 1567
Edytor: wtps0n
Komentarz: *** KREACJA ***
← Wersja 3 z 2016-03-11 14:05:17 → ⇥
Rozmiar: 2316
Edytor: wtps0n
Komentarz: + dodanie parsera; dodanie pokazywania struktury tabeli
Usunięcia zostały oznaczone w ten sposób. Dodatki zostały oznaczone w ten sposób.
Linia 9: Linia 9:
{{{ Pokazanie listy procesów w wersji skróconej (początki poleceń SQL):
{{{#!sql numbers=off
-- SELECT * FROM aqq;
SHOW FULL PROCESSLIST
}}}

Pokazanie listy procesów z pełnymi poleceniami SQL (czasami z bardzo długimi zapytaniami):
{{{#!sql numbers=off
Linia 14: Linia 21:
{{{ {{{#!sql numbers=off
Linia 20: Linia 27:
{{{ {{{#!sql numbers=off
Linia 33: Linia 40:
{{{ {{{#!sql numbers=off
Linia 38: Linia 45:
{{{ {{{#!sql numbers=off
Linia 44: Linia 51:
{{{ {{{#!sql numbers=off
Linia 48: Linia 55:
== Pokazanie indeksów związanych z tabelą ==
{{{#!sql numbers=off
SHOW INDEXES FROM tbl_name;
}}}

== Struktura tabeli ==
Domyślnie pokazanie samych kolumn:
{{{#!sql numbers=off
-- describe jest aliase dla show columns
DESCRIBE tbl_name
}}}

Albo w wersji jak tabela została utworzona (wraz z indeksami, kodowaniem znaków, etc.):
{{{#!sql numbers=off
SHOW CREATE TABLE tbl_name
}}}



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)