Zadejte hledaný výraz...
Jakub Glos
Webtrh.cz
Vývoj webových stránek na WordPressu a proklientský přístup pro freelancery
Třídenní infromacemi nabitý prezenční + online kurz v Praze od Webtrhu pouze za 2 871 Kč
Více informací

MySQL a rýchlosť webu

Kirt50
verified
rating uzivatele
23. 3. 2013 09:44:52
,
23. 3. 2013 09:44:52
https://webtrh.cz/diskuse/mysql-a-rychlost-webu/#reply881543
Martin Bárta
verified
rating uzivatele
(28 hodnocení)
23. 3. 2013 09:47:16
Samozřejmě.
23. 3. 2013 09:47:16
https://webtrh.cz/diskuse/mysql-a-rychlost-webu/#reply881542
David Musil
verified
rating uzivatele
(68 hodnocení)
23. 3. 2013 10:01:22
To snad záleží na datech, co načítám ne? A ne na tom, jestli ta databáze má 1 nebo 50 mega a já se k ní přopojím sotva jednou.
23. 3. 2013 10:01:22
https://webtrh.cz/diskuse/mysql-a-rychlost-webu/#reply881541
FAKAM
verified
rating uzivatele
(10 hodnocení)
23. 3. 2013 10:13:14
Záleží na type a intenzite požiadavky.
23. 3. 2013 10:13:14
https://webtrh.cz/diskuse/mysql-a-rychlost-webu/#reply881540
FSP
verified
rating uzivatele
(1 hodnocení)
23. 3. 2013 10:21:56
Upresnil by som to, že závisí na veľkosti tabuľky v databáze, z ktorej potrebujeme ťahať dáta..
23. 3. 2013 10:21:56
https://webtrh.cz/diskuse/mysql-a-rychlost-webu/#reply881539
Jan Stejskal
verified
rating uzivatele
(7 hodnocení)
23. 3. 2013 10:38:44
Pokud je tabulka optimalizovaná a vybíráte konstantní počet řádků, velikost vliv nemá. Pokud vybíráte všechny řádky, nebo není tabulka optimalizovaná (musí se projít víc řádků, než je potřeba) má velikost tabulky zásadní vliv.
23. 3. 2013 10:38:44
https://webtrh.cz/diskuse/mysql-a-rychlost-webu/#reply881538
jarin001
verified
rating uzivatele
(37 hodnocení)
23. 3. 2013 10:39:58
Spíš než objem databáze ovlivňuje rychlost připojení k databázovému serveru, nedávno jsem jsem řešil pomalé načítání webu a toto byla příčina, hosting jsem požádal o přesun DB na jiný server.
23. 3. 2013 10:39:58
https://webtrh.cz/diskuse/mysql-a-rychlost-webu/#reply881537
Registrace
verified
rating uzivatele
(1 hodnocení)
23. 3. 2013 10:56:56
Nežáleží na velikosti databáze, nebo tabulky.
Záleží na tom jestli jsou správně napsány dotazy, jestli jsou správně vytvořeny indexy. Pak může dotaz i do databáze která má několik (klidně i desítek) GB trvat jen pár milisekund.
23. 3. 2013 10:56:56
https://webtrh.cz/diskuse/mysql-a-rychlost-webu/#reply881536
Obecně platí, že čím víc řádků v tabulce, tím pomalejší dotazy na ní jsou.
* U malých tabulek si můžete dovolit mít je blbě navržené a blbě je dotazovat a nikde se to moc neprojeví.
* U větších tabulek začne záležet na tom, abyste je dotazoval správně, měl je dobře navržené a měl na klíčových sloupcích indexy.
* U opravdu velkých tabulek už potřebujete trochu vědět, jak ten samotný databázový systém (v tomto případě MySQL) funguje a co je a co není vůbec technicky reálné dotazovat rychle.
Přitom platí, že 90% problémů s rychlostí vyřeší indexy, 90% ze zbytku chytřejší návrh a dotazy a zbylé 1% archivace starých dat a agregace dat z obřích tabulek do malých.
Takže ano, počty řádků tabulek ovlivňují rychlost zpracování dotazů, ale není to ani faktor jediný ani ten nejdůležitější.
23. 3. 2013 11:00:17
https://webtrh.cz/diskuse/mysql-a-rychlost-webu/#reply881535
FAKAM
verified
rating uzivatele
(10 hodnocení)
23. 3. 2013 11:00:56
Napsal Registrace;926762
Nežáleží na velikosti databáze, nebo tabulky.
Rovnaký dotaz sa vykoná pre malej databáze rovnako rýchlo ako pri obrovskej?
23. 3. 2013 11:00:56
https://webtrh.cz/diskuse/mysql-a-rychlost-webu/#reply881534
Registrace
verified
rating uzivatele
(1 hodnocení)
23. 3. 2013 11:11:42
Napsal FAKAM;926767
Rovnaký dotaz sa vykoná pre malej databáze rovnako rýchlo ako pri obrovskej?
Záleží jaký dotaz. Jak psal někdo vejš - pokud bude chtít někdo vypsat všechny řádky (což je sice kravina, ale budiž), tak samozřejmě budou rozdíly markantní (100 řádků vs 1 000 000 řádků),...
Pokud jde o normální dotazy (vypsat komentáře k článku, včetně stránkování,...) a jsou správně napsány, včetně indexace,... vyjde to v podstatě na stejno.
Jak psal oham vejš. U malých tabulek je možnost to mít špatně napsaný, mít v tom bordel, a bude to OK, ale u velkých už je potřeba to mít správně. MySQL používá například Facebook, LinkedIn, Wiki, Seznam a jak jim to fičí.
23. 3. 2013 11:11:42
https://webtrh.cz/diskuse/mysql-a-rychlost-webu/#reply881533
MAHI
verified
rating uzivatele
(15 hodnocení)
23. 3. 2013 11:14:58
Napsal oham;926765
Takže ano, počty řádků tabulek ovlivňují rychlost zpracování dotazů, ale není to ani faktor jediný ani ten nejdůležitější.
Počet řádků se začne významně projevovat řekněme nad 1 000 000 řádků pokud jsou dobře udělané indexy.
Ano, velikost databáze rychlost dotazu v MySQL ovlivňuje, to je bohužel taková "vlastnost" MySQL, kterou jiné databáze řeší mnohdy lépe. Nicméně na zlepšení se již pracuje a ve verzi MySQL 6 by to mělo být značně vylepšeno.
Takže z dlouhodobého hlediska je dobré pochopit jak indexy fungují, jak je správně vytvořit a kdy je jaký využit. Třeba dotaz WHERE name LIKE 'Jan%' bude mnohokrát rychlejší než dotaz WHERE name LIKE '%Jan', protože druhý uvedený nebude používat index.
Čili podle významnosti jaké vlastnosti databáze ovlivňují rychlost webu:
--- samotný návrh databáze a indexů (doporučuji nastudovat normální formy)
--- počet SQL dotazů na jedné stránce (některé systémy jako Joomla či MVC frameworky jako cakePHP jsou schopny udělat klidně 50 dotazů na jedno načtení stránky)
--- ...pak ve většina případů dlouho dlouho nic (pokud to není hosting na nic)... a pak...
--- rychlost připojení k databázovému serveru
--- velikost databáze, myšleno počet řádků
23. 3. 2013 11:14:58
https://webtrh.cz/diskuse/mysql-a-rychlost-webu/#reply881532
vlnk
verified
rating uzivatele
(4 hodnocení)
23. 3. 2013 14:19:31
name LIKE '%Jan',
na tyto dotazy stačí dělat index pomocí funkce reverse...
23. 3. 2013 14:19:31
https://webtrh.cz/diskuse/mysql-a-rychlost-webu/#reply881531
FSP
verified
rating uzivatele
(1 hodnocení)
24. 3. 2013 14:24:48
Napsal Jan Stejskal;926755
Pokud je tabulka optimalizovaná a vybíráte konstantní počet řádků, velikost vliv nemá.
Napsal Registrace;926762
Nežáleží na velikosti databáze, nebo tabulky.
A čo v prípade, keď mám dve diskusné fóra, jedno má tabuľku príspevkov veľkú 2 MB a druhé 950 MB? Ktoré fórum mi skôr zobrazí výsledky vyhľadávania, keď chcem vyhľadať nejaké konkrétne slovo?
24. 3. 2013 14:24:48
https://webtrh.cz/diskuse/mysql-a-rychlost-webu/#reply881530
init.22
verified
rating uzivatele
(7 hodnocení)
24. 3. 2013 14:30:26
Napsal FSP;927268
A čo v prípade, keď mám dve diskusné fóra, jedno má tabuľku príspevkov veľkú 2 MB a druhé 950 MB? Ktoré fórum mi skôr zobrazí výsledky vyhľadávania, keď chcem vyhľadať nejaké konkrétne slovo?
Na to už by se spíš hodilo fulltextové vyhledávání, které z daných zaindexovaných sloupců sestaví slovník se statistikami jednotl. slov, takže engine nebude muset prohledávat celou tabulku řádek po řádku, ale najde si s pomocí vyhledávacího stromu ono slovo v seznamu a prostřednictvím odkazů do datových listů se to prováže s hodnotami v prohledávané tabulce. Má to pouze nevýhodu, že se s tím obtížně zpracovávají části slov, resp. to umí max. ohýbání a někdy i sklonování, což zase s LIKE obecně nedocílíte.
S filtrem typu LIKE '%něco%' poroste složitost hledání lineárně - tzn. že v tabulce o 1000 záznamech to bude 1000x pomalejší, protože tam není co optimalizovat mezi jednotl. řádky. Naopak fulltext umožní logaritmickou složitost (ve větších počtech to nebude tak rychle narůstat), ale je tam zase nárok na režii a sestavení indexu.
24. 3. 2013 14:30:26
https://webtrh.cz/diskuse/mysql-a-rychlost-webu/#reply881529
Pro odpověď se přihlašte.
Přihlásit