image/svg+xml

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

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

Zobrazit bez stromu  |  nových odpovědí: 12/12
 | 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  |  [81.201.48.---]

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  |  [81.201.48.---]

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


7 novinek, na které se můžete těšit v jarní aktualizaci Windows 10

7 novinek, na které se můžete těšit v jarní aktualizaci Windows 10

** Nová verze bude uvolněna v průběhu jara ** Přinese několik novinek a opět vylepší design systému ** Pravděpodobný název bude Spring Creators Update odkazující na dvě předešlé aktualizace

21.  2.  2018 | Vladislav Kluska | 68

Hokej online: jak sledovat olympijské zápasy na internetu

Hokej online: jak sledovat olympijské zápasy na internetu

** Hokejové zápasy na olympijských hrách můžete sledovat i online ** Oproti minulý rokům se servis zpravodajství z Olympijských her změnil ** Některé disciplíny půjde sledovat i ve virtuální realitě

23.  2.  2018 | Stanislav Janů | 5


Aktuální číslo časopisu Computer

Ochraňte svou techniku před zloději

Testy All-in-One PC a herních monitorů

Proč byste měli chtít HDR televizi

Svět leteckých simulátorů