Zadejte hledaný výraz...

Pomoc se zobrazováním dotazu

David Flídr
verified
rating uzivatele
(22 hodnocení)
16. 1. 2011 22:13:04
Dobrý den, mám takový dotaz, co by mělo být rychlejší. Kontrola přes count
mysql_result(mysql_query("SELECT COUNT(ID) FROM xx WHERE num_int = $int_num_xx and ID != $id_xx"), 0)
a pak pomocí if pokud bude nějaký počet vypisovat dále
SELECT SQL_CALC_FOUND_ROWS ID, cas, soubor, interpret, skladba, stazeno FROM xx WHERE num_int = $int_num_xx and ID != $id_xx order by stazeno desc LIMIT 6
nebo rovnou zobrazovat jen druhý dotaz a pak pouze kontrolovat počet řádků? S tím že výsledek s počítání (count) řádků bude ta ze 40% větší než nula, a nebo zobrazovat asi pomalejší dotaz u 60% těch co bude nula. Tabulka má cca 25000 řádků.
díky za názory
16. 1. 2011 22:13:04
https://webtrh.cz/diskuse/pomoc-se-zobrazovanim-dotazu/#reply600551
Klidně použije jen druhý select. Nastav si indexy na sloupce podle kterých se vyhledává, jinak se to s nárůstem počtu záznamů může zpomalovat. Každopádně 25 tis. záznamů je nic pokud je databáze dobře navržená.
16. 1. 2011 23:03:32
https://webtrh.cz/diskuse/pomoc-se-zobrazovanim-dotazu/#reply600550
Celý první dotaz je obsažen v druhém dotazu, takže používejte jen ten druhý.
17. 1. 2011 11:26:24
https://webtrh.cz/diskuse/pomoc-se-zobrazovanim-dotazu/#reply600549
duben
verified
rating uzivatele
(49 hodnocení)
19. 1. 2011 13:49:37
Z hlediska DB optimalizace rozhodně použít nejprve count (přenese se pouze 1 záznam). A pokud potřebuješ vypsat zavolat znovu DB se sloupci co potřebuješ a podmínkou podle čeho vybíráš co vypsat.
Sice jsou to 2 dotazy versus 1, nicméně pokud se má přenáše X tisíc řádků, zatěžuje to DB víc. Musí se alokovat paměť na vrácená data, musí se poslat a sice tam máš limit. Ale z hlediska DB zátěže je vhodnější opravdu zvlášť count a zvlášť select, pokud pokaždé s výsledky Selectu nechceš dále pracovat.
19. 1. 2011 13:49:37
https://webtrh.cz/diskuse/pomoc-se-zobrazovanim-dotazu/#reply600548
Pro odpověď se přihlašte.
Přihlásit