MySQL, Indizes auf Spalten bei Umbenennung in SELECT
lima-city → Forum → Programmiersprachen → PHP, MySQL & .htaccess
abfrage
art
baum
beschreiben
code
einmalig anzeigen
frage
index
jemand
problem
schnelleren suche
spalte
spalten
tun
umbenennen
url
vergleich
vorkommen
vorschlag
wissen
-
Moin,
ich selektiere aus meiner Datenbank folgendermasen:
SELECT * FROM tab_1 LEFT JOIN ( SELECT spalte_1 AS umbenannte_spalte_1 FROM tab_2 WHERE [...] ) WHERE [...]
Auf der spalte_1 von tab_2 liegt ein Index.
Meine Frage ist nun, ob die umbenannte_spalte_1 diesen Index beibehält oder nich. So wie es ausschaut, tut die Spalte dies nicht, da die Abfrage im Vergleich, wo ich Sie nicht umbenennen muss sehr sehr langsam ist.
Wenn der Index verschwindet, hat jemand einen Vorschlag, wie ich das lösen könnte?
Schonmal Danke im Voraus :)
-
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage
-
SELECT tab_alias1.spalte1, tab_alias1.spalte2, tab_alias2.spalte2 FROM tab_1 AS tab_alias1 JOIN tab_2 AS tab_alias2 ON tab_alias1.spalte1=tab_alias2.spalte1
müsste genauso funktionieren und dir alle Spalten einmalig anzeigen die in beiden Tabellen vorkommen (da bin ich mir aber gerade nicht ganz sicher)SELECT DESTINCT * FROM
-
fr4mer schrieb:
[...]
Meine Frage ist nun, ob die umbenannte_spalte_1 diesen Index beibehält oder nich. So wie es ausschaut, tut die Spalte dies nicht, da die Abfrage im Vergleich, wo ich Sie nicht umbenennen muss sehr sehr langsam ist.
Wenn der Index verschwindet, hat jemand einen Vorschlag, wie ich das lösen könnte?
Ist ja klar, wenn du von umbenannte_spalte_1 nur die Spalte spalte_1 selektierst und nicht das Indexfeld. Der Index verschwindet nicht, du fragst ihn nur nicht ab. Anders bei:
SELECT * FROM tab_1 LEFT JOIN ( SELECT deine_index_spalte AS deine_umbenannte_index_spalte, spalte_1 AS umbenannte_spalte_1 FROM tab_2 WHERE [...] ) WHERE [...]
So jedenfalls, wenn ich das Problem richtig verstanden habe? -
trueweb schrieb:
Ist ja klar, wenn du von umbenannte_spalte_1 nur die Spalte spalte_1 selektierst und nicht das Indexfeld. Der Index verschwindet nicht, du fragst ihn nur nicht ab. [...]
So jedenfalls, wenn ich das Problem richtig verstanden habe?
Auf spalte_1 liegt ja bereits ein Index.
Ich versuchs mal noch näher zu beschreiben, was mein Problem ist:
Auf der spalte_1 von tab_2 liegt ein Index, das heißt, wenn mich mein Wissen nicht trügt, dass MySQL die Datensätze anhand dieser Spalte zusätzlich, zur schnelleren Suche, in einem binären Baum verwaltet.
Ich würde nun gerne wissen, ob meine umbenannte_spalte_1 nun ebenfalls auf die Art und Weise, wie ein Index, verwaltet wird.
Meiner Meinung nach nicht, da der Left Join aus tab_1 auf tab_2 mit der umbenannten Spalte sehr lange dauert - viel zu lang für meinen Geschmack.
Leider muss ich die spalte_1 aus tab_2 umbenennen, da der Spaltenname in tab_1 bereits verwendet wird.
Beitrag zuletzt geändert: 5.7.2011 19:21:08 von fr4mer -
Du deklarierst ja lediglich einen Alias, der hat mit einem Index nichts zu tun, dieser wird auch weiterhin verwendet.
-
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage