MySql - Speciális index
Sziasztok, lehet úgy index-elni, hogy nem egy konkrét mezőt index-elek le, hanem egy kifejezést! Konkrétan van egy tábla, benne egy email címek oszlop, és nekem sokszor van szükségem az üres email című sorokra. Ha az email oszlopot index-elem le, akkor irreálisan sok felesleges adatot mentek el, de redundás oszlopot sem szeretnék.
Létezik ilyen index?
■ Létezik ilyen index?
szerintem nem
pontosítás
Gyakori lekérés, hogy az üres email-lel rendelkező sorok kellenek.
Két megoldás lenne:
1. index az email oszlopra, amit feleslegesnek érzek, mert sokkal több adat lenne, mint amennyi nekem kell.
2. egy redundáns oszlop email_null és arra egy index. Ezt meg nem szeretném.
Tehát, van-e olyan index, hogy email="" vagy valami ilyesmi? De elhiszem, ha azt mondod, hogy nincs, csak gondoltam megkérdezem... hátha... :)
Indexelj
és ha több mezőből kell összeszedni?
Összetett index
Ez jó arra az esetre, ha azon mezők szerint akarsz rendezni.
Persze arra figyelj, hogyha ORDER BY oszlop1, oszlop2 DESC a rendezés, akkor az index is oszlop1, oszlop2 DESC legyen, ne mondjuk oszlop1, oszlop2 és ne is oszlop2, oszlop1.
desc
bonyolultabbra gondoltam
order by INSTR(str,substr)+INSTR(str2,substr2)
Úgy értem, hogy order by-nál bármilyen kifejezést használhatok; nincs olyan mód, hogy ezt indexben is megtehessem? (Mert akkor mi marad, ha nem az adatbázis áttervezése, új oszlop használata?) (A példa nem életszerű, de hasonló problémám volt már)
Köszi.
functional index
Üdv,
Felhő
köszi