image/svg+xml

» Poradna » Počítačové sítě

Velká MySQL tabulka, optimalizace SELECT pro stránkování

 | Microsoft Windows 7 Chrome 19.0.1084.56

Zdravím,
Mám v mysql tabulku (říkejme ji třeba "pokus") a ta obsahuje přes 1 500 000 záznamů.
Potřeboval bych udělat stránkování (to mám již vyřešené), nicméně když vypíši tímto příkladem data pro danou stránku:

$sql = "SELECT * FROM videos ORDER BY id DESC LIMIT $limit_start,40";
$result = mysql_query($sql);

while($row = mysql_fetch_assoc($result))
{
........
}

pokud je $limit_start třeba 500 (LIMIT 500,40) je všecko ok, ale pokud mám $limit_start třeba 750000 (LIMIT 750000,40) tak se to strašně dlouho načítá (nebo vůbec).

Můžete mi prosím někdo poradit, jak mám udělat tento dotaz efektivně, abych nemusel číst všecky řádky v tabulce i když je nepotřebuji, ale aby se vypsalo jen těch 40 a rychlost byla furt stejná (co nejvyšší)??

Díky moc všem, kteří přispějí do diskuze

Odpovědi na otázku

 |   |  Microsoft Windows 7 Chrome 19.0.1084.56

Máš na sloupci id index?

Souhlasím  |  Nesouhlasím
 | Microsoft Windows 7 Chrome 19.0.1084.56

Klíčový název = Typ = Mohutnost = Akce = Sloupec
PRIMARY = PRIMARY = XXXX = id

Souhlasím  |  Nesouhlasím
 |   |  Microsoft Windows 7 Chrome 19.0.1084.56

Tak to si už moc nepomůžeš. Stránkování není moc určené na to, aby se dalo skočit i na stránku s velkým pořadovým číslem.

Souhlasím  |  Nesouhlasím
 | Microsoft Windows 7 Chrome 19.0.1084.56

Já bych řekl, že to nějak jít musí. Máš spousty webů, které mají třeba 30 000 stran a když přejdeš na stranu 23 000 tak je to stejně rychle načtené, jako když přejdeš na stranu 3

Souhlasím  |  Nesouhlasím
 |   |  Microsoft Windows 7 Chrome 19.0.1084.56

Jenže ty nepoužívají MySQL...

Souhlasím  |  Nesouhlasím
 | Microsoft Windows 7 Chrome 19.0.1084.56

A co jiného bys doporučil, pgSQL?

Souhlasím  |  Nesouhlasím
 |   |  Microsoft Windows 7 Chrome 19.0.1084.56

Třeba. Ale problémy s tím budou mít všechny databáze.
Pomoci by mohlo třeba rozdělení řádků tabulky na několik menších, pokud jsou jednotlivé řádky rozsáhlé.

Souhlasím  |  Nesouhlasím
 |   |  Microsoft Windows 7 IE 9.0

našel jsem si u sebe tabulku, která má 3,5 miliónu řádků 50MB v datech a 170MB ve čtyřech indexech a bez problémů mi to stránku (v phpMyAdminu) a dotazy se vykonávají cca 0,15s

Takže problém není v použití MySQL, ale v tom, jak je použité - tedy indexy a konfigurace (přidělení paměti) tak, aby se nepracovalo s diskem, ale vše bylo v paměti

Souhlasím  |  Nesouhlasím
 | Microsoft Windows 7 Chrome 19.0.1084.56

Index (id) má 15Mb, celá databáze má 1,6GB

Průměrná délka řádku: 1123
Průměrná velikost řádku: 1134 B

Úložiště: MyISAM

DB jede na VPSce u Wedos hosting (2 moduly VPS)

Pokud bys mi poradil, jak a co lépe nastavit, byl bych ti vděčný.
Nikdy jsem s tak velkou DB nepracoval

Souhlasím  |  Nesouhlasím
 |   |  Microsoft Windows 7 Chrome 19.0.1084.56

Kolik máš přiděleno paměti? Pokud pár (set) MB, tak se není moc čemu divit.

Souhlasím  |  Nesouhlasím
 |   |  Microsoft Windows 7 Chrome 19.0.1084.56

Tak jestli má jeden řádek 15 bytů, tak se nedivím, že to jede rychle.

Souhlasím  |  Nesouhlasím
 |   |  Microsoft Windows 7 IE 9.0

no ale o tom to taky je, že v té "velké" tabulce mám jen to minimum a zbytek připojuji z dalších tabulek, ale nemusím to dělat pro všechny záznamy, ale jen pro těch 40, co jsou na té jedné stránce

Souhlasím  |  Nesouhlasím

Související témata: Select, Optimalizace, Videos




Určitě si přečtěte

Přichází revoluce v oblasti deodorantů!

Přichází revoluce v oblasti deodorantů!

** Britští vědci odhalili uzlový bod procesů, kterými vzniká nejpronikavější složka lidského tělesného pachu ** Nové generaci deodorantů by mohl dodat na síle cílený zásah do života malé skupinky kožních bakterií ** Podle některých vědců by to ale znamenalo zpřetrhat pouta mezi člověkem a mikrobem

Jaroslav Petr | 33

Externí SSD se může hodit. Je rychlé, malé zvenku, velké uvnitř a cena už se snese

Externí SSD se může hodit. Je rychlé, malé zvenku, velké uvnitř a cena už se snese

** Vyzkoušeli jsme rychlé externí SSD Samsung T5 ** Externí SSD je lepší než flešky i velké plotnové disky, většímu rozšíření doposud bránila především cena ** Samsung T5 zvládne i chytré šifrování a připojení k mobilu

David Polesný | 27

Nová zbraň proti hackerům: obrovské množství chyb v softwaru

Nová zbraň proti hackerům: obrovské množství chyb v softwaru

** Vědci vymysleli nový systém obrany proti hackerům ** Pomocí speciálního systému implementují do softwaru spoustu chyb ** Tyto chyby nejsou zneužitelné, což útočník zjistí až po čase

Karel Javůrek | 28

Jak horko bude ve vašem městě, až vám bude 80 let? Podívejte se, jak se projeví klimatické změny!

Jak horko bude ve vašem městě, až vám bude 80 let? Podívejte se, jak se projeví klimatické změny!

** Srpen byl třetí nejteplejší za posledních více než sto let ** Bude to ale daleko horší, jak ukazuje aplikace NYT ** V Praze vzroste počet horkých dní na čtyřnásobek

Karel Kilián | 21

Co je srdce nového iPhonu? Apple A12 Bionic, první 7nm čip nabitý výkonem

Co je srdce nového iPhonu? Apple A12 Bionic, první 7nm čip nabitý výkonem

** Apple v nových iPhonech používá nový vlastní čip A12 Bionic ** Jde o první 7nm čip na světě ** Kromě vyššího klasického výkonu dostala neuronová část masivní navýšení rychlosti zpracování umělé inteligence

Karel Javůrek | 38


Jízdní řády Bileto
Aktuální číslo časopisu Computer

Megatest: 13 grafických karet

Srovnání 7 dokovacích stanic s USB-C

Jak na perfektní noční fotografie

Kvalitní zdroje informací pro sebevzdělávání