Sie befinden sich hier im Forenarchiv von phpforum.de wenn Sie direkt ins Forum möchten, klicken Sie bitte hier. Zur Startseite kommen Sie hier.

Bestimmte Daten in DB suchen (Index erstellen???)

Moin alle zusammen,
ich hab da mal so ne Frage. Wenn sich bei mir jemand anmeldet, soll geschaut werden, ob der Benutzername schon in der Datenbank gibt. Meine Tabelle ist aber nach der ID sortiert. Wenn man jetzt diesen Benutzernamen in der Tabelle suchen müsste, dann wäre das doch sehr aufwendig oder ??? Kann man da vielleicht soetwas wie ein Index machen. Dass heißt, dass meine Datenbank immer noch nach der ID sortiert ist, aber soetwas wie eine "unsichtbare" Spalte hat, wo die Daten nach dem Benutzernamen sortiert sind. Dann wäre die Suche ja um einiges schneller. Vielleicht weiß ja jemand von euch, wie man so ein Problem lösen kann.

Hier gehts zum Orginal Eintrag "Bestimmte Daten in DB suchen (Index erstellen???)" im Forum

Antworten

In einer Datenbank gibt es keine Sortierung. Diese Sortierung bekommst du nur dann, wenn du bei der Abfrage "order by" benutzt.

*** Nobody ***


2.

WIe finde ich dann haus, ob der Benutzername schon in der Datenbank ist??? Da kann ich doch nicht mehrer Tausend Benutzernamen miteinander vergleichen oder ???


3.

Grundlagen! Das sind Grundlagen, die man können sollte!
Code:                   In Zwischenablage kopieren (nur IE)
1">

*** Nobody ***


4.

Danke für den Quellcode. Ich wollte eigentlich wissen, wie das im Hintergrund abläuft. Wenn ich z.B. 100 000 Datensätze habe, sind die ja unsortiert. Wenn ich jetzt ein Benutzername suche, kann es doch in schlimmsten Fall sein, dass ich 100 000 Vergleiche brauche oder wird da mit einer anderen Methode gesucht? Deshalt auch die Frage, ob es nicht besser wäre ein Index zu machen, wo die Benutzernamen sortiert sind.


5.

Du kannst einen Index mit MySQL erzeugen, dann geht die Suche schnell genug und musst dich nicht selber drum kümmern.

*** Nobody ***


6.

Wie würdest du es machen? Einen Index erzeugen und somit mehr Speicher verbrauchen, oder doch den Quellcode da oben. Ich hab mal gelesen dass MySQL sehr schnell sein soll.
Ich hab mal noch ne frage zum Index. Wenn ich einen Index ertselle habe ich doch sozusagen eine Spalte mehr wo eben die Adressen der Werte geordet und gespeichert ist oder ???


7.

*seufz* Der Quellcode bleibt doch der gleiche, ob mit oder ohne Index. Das ist doch gerade der Vorteil einer relationalen DB: dass man eine Schnittstelle hat,die einen von den technischen Details fernhält.

Und natürlich brauchst Du da nen Index auf dem Usernamen, der Speicherverbrauch spielt in solchen Überlegungen keinerlei Rolle.

Und nein, Du hast keine extra Spalte.

Und überhaupt: Bitte eigne Dir doch ein paar Grundlagen an...


Hier gehts zum Orginal Eintrag "Bestimmte Daten in DB suchen (Index erstellen???)" im Forum
 
phpforum.de | Impressum | Handy Bundles