Portál AbcLinuxu, 20. dubna 2024 05:19


Dotaz: Rychlá metoda načtení dat z mysql

22.9.2010 21:45 vik
Rychlá metoda načtení dat z mysql
Přečteno: 619×
Odpovědět | Admin
Zdravím.

Mám array(15, 469 ,15, 515 ...). Každé číslo odpovídá id řádku tabulky v mysql. Je výhodnější provádět načtení (select) postupně nebo provést jeden select a pak data interpretovat v php? Jak vlastně může být maximálně dlouhý dotaz provedený z php do mysql?

Řešení dotazu:


Nástroje: Začni sledovat (0) ?Zašle upozornění na váš email při vložení nového komentáře.

Odpovědi

Řešení 1× (David Karban)
23.9.2010 12:17 Sten
Rozbalit Rozbalit vše Re: Rychlá metoda načtení dat z mysql
Odpovědět | | Sbalit | Link | Blokovat | Admin
Nejrychlejší je provést SELECT … WHERE `id` IN (15, 469, 515, …)
3.10.2010 16:53 venca kuzel | skóre: 2
Rozbalit Rozbalit vše Re: Rychlá metoda načtení dat z mysql
Odpovědět | | Sbalit | Link | Blokovat | Admin
Jak píše Sten, u takhle jednoduchých dotazů, je rychlejší jeden dotaz, protože položení dotazu a obdržení odpovědi je hodne drahé, obvzlášť, když se to jeste tahá po síti do php. Pokud by jsi pokládal složitější dotaz s hodně spojeními, může být rychlejší jej rozložit na více oddělených dotazů, protože spojení je poměrně paměťově a někdy i výpočetně náročné a pak je lepší než databázi nechat spojit vě obrovské tabulky a jejich spojená data omezovat, tak vybrat data z každé tabulky zvlášť a omezit až výslednou množinu.

Maximální délka jeddnoho dotazu závisí na nastavení systemové proměnné max_allowed_packet. Ale to, že to může být 1GB je určine spíš k uploadu velkých binárních dat, než k pokládání takhle rozsáhlých dotazů.

Viz http://dev.mysql.com/doc/refman/5.1/en/server-system-variables.html#sysvar_max_allowed_packet

Založit nové vláknoNahoru

Tiskni Sdílej: Linkuj Jaggni to Vybrali.sme.sk Google Del.icio.us Facebook

ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.