AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Datenbanken DB-Design: Index richtig verwenden
Thema durchsuchen
Ansicht
Themen-Optionen

DB-Design: Index richtig verwenden

Ein Thema von yankee · begonnen am 29. Apr 2006 · letzter Beitrag vom 29. Apr 2006
 
Benutzerbild von yankee
yankee

Registriert seit: 10. Mär 2004
1.134 Beiträge
 
Lazarus
 
#1

DB-Design: Index richtig verwenden

  Alt 29. Apr 2006, 08:56
Datenbank: Mysql • Version: 5 • Zugriff über: php (tut aber eigentlich nichts zur Sache)
Hi @ll,

ich habe mir gerade ein Script geschrieben, welches eine 1,3 MB Tabelle durchgeht und in einer Schleife ca. 20.000 querys darauf ausfuehrt. Nur Select-Abfragen mit einem WHERE auf eine INT-Spalte.
Das Script hat 90 Sekunden gebraucht und damit einen schnitt von 46 Querys/Sekunde geschafft.
Nachdem ich das Skript ein paar mal laufen gelassen habe, kam ich auf die Idee, dass das doch ein wunderbares Beispiel dafuer ist um mal zu testen, welche Auswirkungen ein Index auf die angesprochene INT-Spalte sich auswirkt.
Also eben phpmyadmin auf, angelegt und mein Script mal wieder ausgefuehrt...
Ich habe erwartet, dass mein Script vielleicht so 10% schneller ist. Bei 50% haette ich gestaunt. 10mal so schnell haette ich nicht fuer moeglich gehalten.
Als ich dann meinen Skript startete und gleichzeitig mich aus meinem Stuhl erhob um mein Muesli wieder aufzufuellen konnte ich mich direkt wieder auf die Sitzflaeche fallen lassen, denn mein Script war fertig. Geamtdauer: 0.45 Sekunden. Querys pro Sekunde: 9108.
Wow. Das isty eine Geschwindigkeitserhoehung um den Faktor 180! *dumm aus der Waesche guck* EINHUNDERTACHTZIG!
Ich habe sogar den index wieder entfernt und mein script nochmal laufen lassen um sowas wie einen query-cache auszuschliessen. Dann hatte ich wieder nur noch 50querys/Sekunde. 4 querys mehr pro Sekunde, als bei meinem ersten Versuch, aber bedeutend langsamer als bei meinem Versuch mit index.

Gut, Ende der Story, wie ich darauf komme und start mit der Frage:
Ist es sinnvoll auf jede spalte, die in irgendeinem WHERE oder ORDER BY oder GROUP BY vorkommt ein index zu legen? Was haelt mich daran zurueck einfach ueberall einen Index drauf zu legen? Haben indices irgendwelche negativen effekte (viel HDD-speicher oder so..)
Letzter Tipp: Drogen. Machen zwar nicht glücklich, geben einem aber wenigstens das Gefühl glücklich zu sein.

Have a lot of fun!
  Mit Zitat antworten Zitat
 


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 02:48 Uhr.
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz