Internet Info, s.r.o. Lupa Měšec Podnikatel Root Zdroják DigiZone Slunečnice Vitalia TopDrive KupDnes Navrcholu NovýTarif Dobrý web Weblogy Woko Jagg Computer.cz SK: MojeLinky

Hlavní navigace

Vlákno názorů k článku
Co nefunguje v MySQL a jak to obejít

mcmatak
mcmatak (neregistrovaný) ---.32.broadband13.iol.cz
16. 12. 2009 21:18

MySQL neumí indexy v subselectech (poddotazech), ve WHERE IN

nevím jestli to už zde padlo, snad jsem četl pozorně, ale mysql neumí používat indexy v tomto případě (klasicky nutné pro stránkování)

SELECT count(*) FROM … select …

SELECT * FROM t WHERE t.id IN (SELECT a mnoho idecek znamena – killni akci)

Jan Garaj aura:44
17. 12. 2009 0:49

Re: MySQL neumí indexy v subselectech (poddotazech), ve WHERE IN

Operátor IN nie je unlimited a to je problém – asi siahaš za jeho možnosti.
Manuál píše: „The number of values in the IN list is only limited by the max_allowed_packet value.“ Takže zmeň hodnotu max_allowed_pac­ket_value alebo lepšie riešenie je prehnať výsledok cez svoju funkciu, ktorá mnoho idečiek rozdelí do viacero IN() skupín pomocou operátora OR ;-).

Zasílat nově přidané příspěvky e-mailem