kostenloser Webspace werbefrei: lima-city


MySQL, Indizes auf Spalten bei Umbenennung in SELECT

lima-cityForumProgrammiersprachenPHP, MySQL & .htaccess

  1. Autor dieses Themas

    fr4mer

    fr4mer hat kostenlosen Webspace.

    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 :)
  2. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

  3. 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


    SELECT DESTINCT * FROM
    müsste genauso funktionieren und dir alle Spalten einmalig anzeigen die in beiden Tabellen vorkommen (da bin ich mir aber gerade nicht ganz sicher)

  4. t*****b

    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?
  5. Autor dieses Themas

    fr4mer

    fr4mer hat kostenlosen Webspace.

    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
  6. Du deklarierst ja lediglich einen Alias, der hat mit einem Index nichts zu tun, dieser wird auch weiterhin verwendet.
  7. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

Dir gefällt dieses Thema?

Über lima-city

Login zum Webhosting ohne Werbung!