Zadejte hledaný výraz...

Mysql query rychlá přes phpmyadmin, pomalá v php skriptu

d.zosincuk
verified
rating uzivatele
22. 4. 2010 11:06:43
Ahoj všem,
potřebuji poradit kde mám hledat problém. Dotaz zadaný přes phpmyadmina je proveden za:
Dotaz zabral 0.1039 sekund
Ale zatímco načítání php skriptu na webu to natáhne zhruba na 5sekund.
Pro práci s databázi používám SimpleSql knihovnu. Může to být tím? Nebo mám hledat někde v nastavení php?
22. 4. 2010 11:06:43
https://webtrh.cz/diskuse/mysql-query-rychla-pres-phpmyadmin-pomala-v-php-skriptu/#reply495085
Vít Michalek
verified
rating uzivatele
(14 hodnocení)
22. 4. 2010 11:31:16
Já bych řekl, že problém je v tom. že phpmyadmin nejede přes tuto knihovnu proto jsou časy tak různé. Provedení SQL dotazu a výpis celeho PHP skriptu jsou 2 různé věci.
Zkusil si nepoužít tu knihovnu a využívat t co je na serveru defaultně?
22. 4. 2010 11:31:16
https://webtrh.cz/diskuse/mysql-query-rychla-pres-phpmyadmin-pomala-v-php-skriptu/#reply495084
naniccz
verified
rating uzivatele
(3 hodnocení)
22. 4. 2010 11:45:35
Treba proto, ze PMA dotaz orizne pomoci LIMIT, i kdyz ho zadas bez omezeni. Je to opravdu uplne stejny dotaz, co se pak posila DB?
22. 4. 2010 11:45:35
https://webtrh.cz/diskuse/mysql-query-rychla-pres-phpmyadmin-pomala-v-php-skriptu/#reply495083
MzK
verified
rating uzivatele
(44 hodnocení)
22. 4. 2010 12:03:46
o jaký se jedná sql dotaz? Možná ho PHPMyAdmin kešuje nebo optimalizuje.
22. 4. 2010 12:03:46
https://webtrh.cz/diskuse/mysql-query-rychla-pres-phpmyadmin-pomala-v-php-skriptu/#reply495082
d.zosincuk
verified
rating uzivatele
22. 4. 2010 12:58:06
Jedná se o dost složitý JOIN několika tabulek + nějaký UNION. Už samotný příkaz mám LIMITovaný na 20 řádků, takže nemůže být tak velký rozdíl. Pomalé je to i při použití normálních PHPkovských příkazů mysql_query a mysql_fetch_array.
Pokud nechám udělat jen mysql_query a nepřevádím výstup do pole, tak je to rychlé. Ale jakmile provedu
while ($row = mysql_fetch_array($vysledek, MYSQL_ASSOC)) {
Tak se to prodlouží o cca 5 sekund jak jsem psal minule. A to výstupem je pole o 8 sloupích a 20 řádcích.
22. 4. 2010 12:58:06
https://webtrh.cz/diskuse/mysql-query-rychla-pres-phpmyadmin-pomala-v-php-skriptu/#reply495081
hm
verified
rating uzivatele
(20 hodnocení)
22. 4. 2010 14:06:40
Napsal d.zosincuk;500800
Pokud nechám udělat jen mysql_query a nepřevádím výstup do pole, tak je to rychlé. Ale jakmile provedu
while ($row = mysql_fetch_array($vysledek, MYSQL_ASSOC)) {
Tak se to prodlouží o cca 5 sekund jak jsem psal minule. A to výstupem je pole o 8 sloupích a 20 řádcích.
no pak je ale jasne v cem je chyba - co mas uvnitr toho while? :) tam bude chyba...
Jinak dotaz co trva 0,1 sekundy muze v budoucnu, pokud bys chytil velkou navstevnost, pusobit urcité vykonové komplikace :)
22. 4. 2010 14:06:40
https://webtrh.cz/diskuse/mysql-query-rychla-pres-phpmyadmin-pomala-v-php-skriptu/#reply495080
MzK
verified
rating uzivatele
(44 hodnocení)
22. 4. 2010 14:09:32
co takle
while ($row = mysql_fetch_assoc($vysledek)) {
}
BTW, co máš ještě v tom while? Možná to tě zpomaluje a chtělo by to kešovat…
22. 4. 2010 14:09:32
https://webtrh.cz/diskuse/mysql-query-rychla-pres-phpmyadmin-pomala-v-php-skriptu/#reply495079
d.zosincuk
verified
rating uzivatele
22. 4. 2010 15:17:01
while ($row = mysql_fetch_array($vysledek, MYSQL_ASSOC)) {
$result[] = $row;
}
Standardně z toho chci prostě dostat pole výsledků. Nic víc. Výstupem je jak jsem říkal pole o 8 sloupcích a 20 řádcích cca.
22. 4. 2010 15:17:01
https://webtrh.cz/diskuse/mysql-query-rychla-pres-phpmyadmin-pomala-v-php-skriptu/#reply495078
MzK
verified
rating uzivatele
(44 hodnocení)
22. 4. 2010 16:07:22
Už jen toto je pole $row = mysql_fetch_assoc($vysledek) takže stačí bez while:
$rows = mysql_fetch_assoc($vysledek)
print_r($rows);
22. 4. 2010 16:07:22
https://webtrh.cz/diskuse/mysql-query-rychla-pres-phpmyadmin-pomala-v-php-skriptu/#reply495077
grey
verified
rating uzivatele
22. 4. 2010 16:14:42
Napsal MzK;500938
Už jen toto je pole $row = mysql_fetch_assoc($vysledek) takže stačí bez while:
$rows = mysql_fetch_assoc($vysledek)
print_r($rows);
jseš si tím jistej?
22. 4. 2010 16:14:42
https://webtrh.cz/diskuse/mysql-query-rychla-pres-phpmyadmin-pomala-v-php-skriptu/#reply495076
hm
verified
rating uzivatele
(20 hodnocení)
22. 4. 2010 16:15:24
Napsal MzK;500938
Už jen toto je pole $row = mysql_fetch_assoc($vysledek) takže stačí bez while:
$rows = mysql_fetch_assoc($vysledek)
print_r($rows);
blbost :) saozrejme ze to tak neni
22. 4. 2010 16:15:24
https://webtrh.cz/diskuse/mysql-query-rychla-pres-phpmyadmin-pomala-v-php-skriptu/#reply495075
d.zosincuk
verified
rating uzivatele
22. 4. 2010 16:17:44
Tímto dostanu jen jeden řádek. Ale není to divné, že by naplnění pole bylo takový zabiják výkonu? Kde může být chyba?
22. 4. 2010 16:17:44
https://webtrh.cz/diskuse/mysql-query-rychla-pres-phpmyadmin-pomala-v-php-skriptu/#reply495074
hm
verified
rating uzivatele
(20 hodnocení)
22. 4. 2010 17:46:33
Napsal d.zosincuk;500944
Tímto dostanu jen jeden řádek. Ale není to divné, že by naplnění pole bylo takový zabiják výkonu? Kde může být chyba?
nevim, vypisuj a pocitej si cas scriptu na ruznych mistech po provedeni ruznych smycek, diky tomu lze prakticky na radek presne prijit na to co to dela a nejak to zmenit...
22. 4. 2010 17:46:33
https://webtrh.cz/diskuse/mysql-query-rychla-pres-phpmyadmin-pomala-v-php-skriptu/#reply495073
d.zosincuk
verified
rating uzivatele
23. 4. 2010 10:19:32
while ($row = mysql_fetch_array($vysledek, MYSQL_ASSOC)) {
$result[] = $row;
}
dělá to ten řádek kde se plní pole
23. 4. 2010 10:19:32
https://webtrh.cz/diskuse/mysql-query-rychla-pres-phpmyadmin-pomala-v-php-skriptu/#reply495072
Je $result prázdný předtím, než ho začnete plnit?
23. 4. 2010 11:21:00
https://webtrh.cz/diskuse/mysql-query-rychla-pres-phpmyadmin-pomala-v-php-skriptu/#reply495071
Pro odpověď se přihlašte.
Přihlásit