SQL - Je cudzí kľúč rovnocenný bežnému indexu z hľadiska indexovania?
Zaujímalo by ma, či cudzí kľúč dokáže nahradiť bežný index alebo je nutné vytvárať aj bežný index, ak už existuje cudzí kľúč. Zaujímalo by ma to hlavne pri MySQL a SQLite. Myslím, že nie, ale keď tak nad tým rozmýšľam, možno to nie je až taký nezmysel.
Klíč a index jsou dvě rozdílné věci.
Aha dobre, mal som totiž myšlienkové pochody, že ak sa to prepája s druhou tabuľkou, tak pre nájdenie záznamu v druhej tabuľke sa vytvára akýsi "vnútorný index", ktorý by bol použiteľný aj zvonka. Takže ďakujem.
Cizím klíčem se obvykle připojuješ na primární klíč jiné tabulky a na tom klíči obvykle index bývá. Ale to je tak veškerá souvislost.
No a tá pripájaná tabuľka, kam ten primárny kľúč pripájaš? Ak tomu správne chápem, ak teda vymažeš záznam z tej pripájanej tabuľky a máš nastavené, že má automaticky mazať prepojené tabuľky, tak sa pri hľadaní v druhej tabuľke "vnútorný index" nepoužije a pri veľkej tabuľke môže mazať niekoľko minút kým nájde správny záznam?
Doplnené: "vnútorný index"
Ano, pokud na sloupci s cizím klíčem není index, tak to může trvat dost dlouho.
V prípade MySQL sa taký index automaticky vytvorí, pokiaľ neexistuje, viď dokumentácia: