Portál AbcLinuxu, 21. července 2025 13:39


Dotaz: MySQL - optimalizace nastavení serveru

5.2.2016 14:42 Petr
MySQL - optimalizace nastavení serveru
Přečteno: 2038×
Odpovědět | Admin
Dobrý den, vím, že přesně poradit asi nepůjde, spíš bych prosil o radu na co se zaměřit ... Na SQL serveru jsou tři databáze, všechny mají stejné tabulky, cca 80 uživatelů pomocí aplikace pracuje se všemi třemi databázemi. Pokud někdo spustí na jedné databázi složitější dotaz (jakási statistika), zpomalí či úplně zablokuje ostatním práci s touto databází (mají kurzor přesýpací hodiny) na celou dobu zpracování tohoto dotazu (několik minut), s ostatními databázemi mohou bez problému pracovat. Z toho usuzuji, že není problém ani ve HW výkonu serveru ani v přenosu po síti. Nemohlo by pomoci navýšení nějakých paramatrů v mysql settings?

Děkuji za radu
Nástroje: Začni sledovat (0) ?Zašle upozornění na váš email při vložení nového komentáře.

Odpovědi

Jendа avatar 5.2.2016 17:04 Jendа | skóre: 78 | blog: Jenda | JO70FB
Rozbalit Rozbalit vše Re: MySQL - optimalizace nastavení serveru
Odpovědět | | Sbalit | Link | Blokovat | Admin
Namátkou…
5.2.2016 17:12 Kit | skóre: 45 | Brno
Rozbalit Rozbalit vše Re: MySQL - optimalizace nastavení serveru
Odpovědět | | Sbalit | Link | Blokovat | Admin
Zkusil bych se nejprve podívat na ten statistický dotaz, jestli mu nějaký dement nezvýšil prioritu.
Komentáře označují místa, kde programátor udělal chybu nebo něco nedodělal.
6.2.2016 13:48 Odin1918 | skóre: 6 | blog: Valhalla
Rozbalit Rozbalit vše Re: MySQL - optimalizace nastavení serveru
Odpovědět | | Sbalit | Link | Blokovat | Admin
Je pouzit myisam ci innodb? Pouzivate zamykani tabulek?
7.2.2016 11:08 Petr
Rozbalit Rozbalit vše Re: MySQL - optimalizace nastavení serveru
MyISAM, zamykani tabulek se nepouziva
7.2.2016 11:29 logik
Rozbalit Rozbalit vše Re: MySQL - optimalizace nastavení serveru
A je důvod nepoužít innodb?
11.2.2016 16:50 PetrHL | skóre: 17 | blog: petr_h | Neratovice
Rozbalit Rozbalit vše Re: MySQL - optimalizace nastavení serveru
Pokud si dobre pamatuju, v pripade MyISAM udela select read lock. Tech muze byt samozrejme vice, ale pokud nektery uzivatel, pripadne script, chce zapsat, musi pockat dokud nebude tento read lock uvolnen. To muze zpusobovat jakoby zamrznuti ostatnim uzivatelum. Mate nejaky specificky pozadavek, ktery Vam brani v prechodu na InnoDB?
"Do, or do not. There is no 'try.'" -- Jedi Master Yoda | CQRLOG | CQRPROP | HamQTH | Domů
23.3.2016 21:28 Bohdan Koleček | skóre: 12
Rozbalit Rozbalit vše Re: MySQL - optimalizace nastavení serveru
ještě bych to upřesnil, že dotaz pro statistiku zamkne všechny tabulky, ze kterých čte, a v okamžiku, kdy do některé z těchto tabulek bude chtít někdo zapsat, tak znemožní veškeré následné operace čtení nad touto tabulkou, dokud nedobněhne dotaz na statistiku a následný zápis.

další možnosti řešení, které ještě nebyly zmíněny - analýza dotazu přes explain, a důkladně prozkoumat, jak dotaz urychlit (rozdělění na menší dotazy, přidání indexů, ...), nebo se pokusit minimalizovat počet joinů v dotazu, aby se nezamykalo tolik tabulek a dotaz proběhl rychleji (tj. nejoinovat, pokud to není nutné pro filtrování, ale provést dotaz nad hlavní tabulkou, a join provést ručně dalším dotazem do db na joinovanou tabulkou).

je to klasický problém myisam, způsob zamykání myisam je absolutně nevhodný pro dlouhé dotazy, pokud se do db zároveň zapisuje.
11.2.2016 09:50 OldFrog {Ondra Nemecek} | skóre: 36 | blog: Žabákův notes | Praha
Rozbalit Rozbalit vše Re: MySQL - optimalizace nastavení serveru
Odpovědět | | Sbalit | Link | Blokovat | Admin
Další možnost je databázi replikovat a dělal statistiky na replice. Jinak se samozřejmě snažit optimalizovat ten sql dotaz, použít ssd disk, zkontrolovat použití query cache nebo upravit proces tak, aby se dělaly statictiky nad menším objemem dat.
-- OldFrog

Založit nové vláknoNahoru

Tiskni Sdílej: Linkuj Jaggni to Vybrali.sme.sk Google Del.icio.us Facebook

ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.