Hans: MySQL

Beitrag lesen

Hi !

da (derzeit) kaum eine kategorie doppelt vorkommt, macht eine "normalisierung" wenig sinn.

Naja, vielleicht kann man wenigstens den Shop normalisieren ?

1 = ShopA
2 = ShopB
...
155=Shop_was_weiss_ich

Dann in der Ursprungstabelle den Klartext-Name durch die Shop-Nummer ersetzen und auf diese Spalte einen Index setzen.

Danach ist die Abfrage:

...where Tabelle.Shop=Shop_zu_Klartext_tabelle.id and Shop_zu_Klartext_tabelle.name='ShopA';

nun angesichts der gegebenen umstände bleibt meine frage,
ob/wie ein index sinn macht.?

Stell Dir vor, Du greifst in eine große Kiste mit aber tausenden von Zahlen und suchst dabei alle Vorkommen von 1234 haben. Sprich, Du mußt immer die Kiste auskippen und jede Zahl <> 1234 in die Kiste zurück und die Treffer immer behalten. Wäre es dan nicht toll, die Zahlen aufsteigend sortiert an einer Schnur aufzuhängen ? Wenn Du 1234 suchst, weißt Du, daß Du nicht beim ersten Zentimeter der Schnur sondern bei 12,34 Meter anfangen mußt, weil die Verwaltung des Index das Dir sagt.

Bei Strings wird es etwas schwieriger (gut, daß dieser Text deutsch ist, denn String ist nicht nur Zeichenkette, sondern auch Schnur ;-)) Hier muß man versuchen, den String in eine Zahl zu "codieren" um ihn dann in das obige Verfahren zu bringen. Dabei kann es sein, daß die Verwaltung fast so groß wie die Tabelle wird und der Performance-Gewinn fraglich wird.

Ich hoffe, das hat Dir jetzt etwas geholfen.

Gruß

Hans