Frage zu MySQL + Indexes

schulze123

Aktives Mitglied
Hallo zusammen!

Ich bin gerade dabei ein Script + Datenbank zu optimieren, um die Datenbank weniger zu belasten.

Ich habe eine Tabelle namens webseiten mit mehreren Spalten und die erste Spalte ist id mit auto_increment.

In dieser Tabelle stehen verschiedene webseiten die oft anhand der Spalte seitennummer gesucht werden.

Jede Seite und somit jede seitennummer gibt es nur 1 mal.

Meine Frage ist ob es sich positiv auswirkt, wenn ich einen Index auf seitennummer lege?

Weil ja eh jede seitnnummer nur ein mal in der Tabelle vorhanden ist?

Beschleunigt es den Suchvorgang nach seitennummer mit index oder verlangsamt es eher sogar weil bei Aktualisierung und Neueintrag auch die Index aktualisiert werden muss?
 
der index beschleunigt den suchvorgang.

wenn du aber schon eine id (auto_increment-feld) hast, die sowieso indiziert ist, warum hast du einen zweiten index (seitennummer)? der ist doch völlig überflüssig.
 
Weil eine meiner PHP-Dateien z.B. folgendes macht...

SELECT id FROM webseiten WHERE seitennummer='$page' LIMIT 1
 
Gibt es denn eingentlich ein Limit bei Indexes?
Wenn es z.B. 2.000.000 Einträge in einer Tabele gibt?
 
QUOTE (schulze123 @ Mo 23.11.2015, 17:53)Gibt es denn eingentlich ein Limit bei Indexes?
Wenn es z.B. 2.000.000 Einträge in einer Tabele gibt?

Limit ist erstmal die Dateigröße (=Betriebsystem)

ich hatte schonmal 5.ooo.ooo Datensätze

Die Maximale Größe eines index ist abhängig vom (long)int
8 Bit int = 256
16 Bit = 64.xxx
32 Bit = ähm?
24 Bit sind (TrueColorGrafik) 16.000.000 (ne? 4.ooo.ooo.ooo?)
32 Bit = verdammt viel; viel mehr wie du brauchst
 
QUOTE (schulze123 @ Mo 23.11.2015, 08:38)Beschleunigt es den Suchvorgang nach seitennummer mit index oder verlangsamt es eher sogar weil bei Aktualisierung und Neueintrag auch die Index aktualisiert werden muss?

1. Wie oft wird gesucht
2. wie oft wird eingetragen

1 passiert um ein vielvielvielFAches öffter wie 2?

Jetzt wird (angenommen 1.000Einträge) durchschnittlich 500 Datenzeilen gelesen
weil vom ersten bis letzten(schlimster Fall) gelsen werden muß

mit Index
read 500 .. zugroß zuklein?
read 250 .. zugroß zuklein?
read 125
read 62
read 31
read 15
read 7
read 3
read 2
read 1 im schlimsten fall werden nur 10 Datensätze gelesen = 1oo stell oder jetzt hat deine DB 100mal sovielA Arbeit beim suchen
 
Zurück
Oben