Autor Zpráva
IdemeNaHavaj
Profil
Ako sa dá okrem nastavenia indexu zrýchliť načítanie DB?Vyberám niekolko desiatok tisíc riadkov z mysql cez PHP a trvá to dlho, tak sa pýtam.
Joker
Profil
IdemeNaHavaj:
Optimalizací výběrového SQL dotazu.
IdemeNaHavaj
Profil
Zabudol som napisat mam 2 tabulky
prva tabulka ma 30 tisic zaznamov a druha 60 tisic.

Nacitavam to nejako takto:

$query = mysql_query("SELECT * FROM `ovocie` WHERE `novinka` = 'FALSE'");
while($result = mysql_fetch_object($query)){
.
.
.
$pr_query = mysql_query("SELECT `meno` FROM `zasielky` WHERE ..."); 
...
}

to meno je index.
Ten druhý query sa vykonáva asi zbytočne tisíc krát si myslím, takže poraďte ako by sa to dalo spojiť. googlené príklady mi nejdu.
Joker
Profil
IdemeNaHavaj:
Ten druhý query sa vykonáva asi zbytočne tisíc krát si myslím, takže poraďte ako by sa to dalo spojiť.
Ano, to je docela možné, ale těžko s tím můžeme nějak poradit, když nevíme, co se vlastně má vybrat (možná by pomohla právě ta vynechaná WHERE podmínka).
V jakém vztahu je ten druhý SELECT k tomu prvnímu?
IdemeNaHavaj
Profil
Joker:
Z toho prvého sa načíta kód ovocia CODE

while($result = mysql_fetch_object($query)){
$code = $result->CODE;

A v tom druhom sa pomocou tej načítanej zisťujú podrobnosti

$pr_query = mysql_query("SELECT `meno` FROM `zasielky` WHERE KOD = '$code'");
Joker
Profil
Aha, takže
SELECT o.*, z.meno FROM ovocie o JOIN zasielky z ON z.kod = o.code WHERE novinka = 'FALSE'

Poznámka, sloupec novinka je řetězec? Předpokládám, že má jen dvě možné hodnoty (ano/ne), tak k tomu není moc důvod.
IdemeNaHavaj
Profil
To je úžasné ide to 100x rýchlejšie!
Ano novinka je FALSE/TRUE

Vaše odpověď


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm: