[GastForen Programmierung/Entwicklung PHP und MySQL order-by Effizienz

  • Suche
  • Hilfe
  • Lesezeichen
  • Benutzerliste
Themen
Beiträge
Moderatoren
Letzter Beitrag

order-by Effizienz

habicht
Beiträge gesamt: 3

8. Feb 2009, 14:20
Beitrag # 1 von 5
Bewertung:
(1641 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo,

mich beschäftigt folgende Frage:

angenommen ich habe eine MySQL Tabelle mit 100.000 Zeilen. Die erste Spalte ist "id INT PRIMARY KEY", die zweite " x INT UNIQUE" oder ähnlich. Auf die zweite Spalte "x" finden zum einen regelmäßig "ORDER BY x"-Abfragen statt, zum anderen werden abundzu x-Werte eingefügt, bzw. ganze x-Wert-Blöcke verschoben (z.B. x=x+1). Wie gestalte/indiziere ich die Tabelle am effizientesten?

Vielen Dank
X

order-by Effizienz

oesi50
  
Beiträge gesamt: 2315

9. Feb 2009, 11:32
Beitrag # 2 von 5
Beitrag ID: #384701
Bewertung:
(1617 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
hallo habicht

schalte mal delay_key_write ein, besonders für häufige INSERT und UPDATE Operationen.

Code
ALTER TABLE deine_tabelle  DELAY_KEY_WRITE =1 


Damit werden die Keys nicht zwangsweise auf die Festplatte geschrieben, sondern erst wenn der Mysql-Server "eine Hand frei" hat.

Außerdem solltest du darauf achten, dass sämtliche keys in den RAM passen.
key_buffer_size = ??? (mindestens so groß wie die Summer der Größe aller .MYI Dateien)
dafür aber
sort_buffer_size klein halten (z.B. 250KB)

zusätzlich noch
key_cache_division_limit = 60


als Antwort auf: [#384615]
(Dieser Beitrag wurde von oesi50 am 9. Feb 2009, 15:29 geändert)

order-by Effizienz

habicht
Beiträge gesamt: 3

9. Feb 2009, 11:51
Beitrag # 3 von 5
Beitrag ID: #384704
Bewertung:
(1611 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo oesi50,

vielen Dank für Deine Antwort!

Ich habe festgestellt, dass x=x+1 u.ä. Operationen auf UNIQUE-Spalten nicht funktionieren, weshalb ich UNIQUE entfernt habe. Ich denke, dass jegliche Sortierfunktionen jetzt wesentlich ineffizienter ausgeführt werden als vorher. Hab ich da jetzt einfach Pech oder kann ich die Spaltendefinition noch intelligenter gestalten?


als Antwort auf: [#384701]

order-by Effizienz

oesi50
  
Beiträge gesamt: 2315

9. Feb 2009, 13:06
Beitrag # 4 von 5
Beitrag ID: #384722
Bewertung:
(1598 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
ich hab das mal schnell mit 100.000 DS getestet.

Abfrage:

Code
SELECT SQL_NO_CACHE * 
FROM test_update_key
ORDER BY xid
LIMIT 100;


0,0012 sek. mit Index
0,0824 sek. ohne Index

Code
SELECT *  
FROM test_update_key
ORDER BY xid
LIMIT 100;


0,0012 sek. 1. Aufruf mit Cache und Index
0.0004 sek. jeder weitere Aufruf mit Cache


Code
UPDATE test_update_key SET xid=xid+1 

1,9216 sek. mit Index
1,8669 sek. mit Index(delay key write)
1,1588 sek. ohne Index



Code
UPDATE test_update_key SET xid=xid+1 WHERE xid > 10000 


0,2979 sek. ohne Index
0,0053 sek. mit Index
0,0050 sek. mit Index(delay key write)



Code
Name  	Typ  	Kardinalität  	Feld 
PRIMARY PRIMARY 100011 id
xid INDEX 10001 xid



als Antwort auf: [#384704]
(Dieser Beitrag wurde von oesi50 am 9. Feb 2009, 13:17 geändert)

order-by Effizienz

habicht
Beiträge gesamt: 3

9. Feb 2009, 15:05
Beitrag # 5 von 5
Beitrag ID: #384737
Bewertung:
(1573 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Oesi, ich bin beeindruckt.

Index mit DELAY_KEY_WRITE scheint ein guter Schachzug zu sein.

Vielen Dank für die Mühe


als Antwort auf: [#384722]
X

Veranstaltungskalender

Hier können Sie Ihre Anlässe eintragen, welche einen Zusammenhang mit den Angeboten von HilfDirSelbst.ch wie z.B. Adobe InDesign, Photoshop, Illustrator, PDF, Pitstop, Affinity, Marketing, SEO, Büro- und Rechtsthemen etc. haben. Die Einträge werden moderiert freigeschaltet. Dies wird werktags üblicherweise innert 24 Stunden erfolgen.

pdf-icon Hier eine kleine Anleitung hinsichtlich Bedeutung der auszufüllenden Formularfelder.

Veranstaltungen
02.02.2023

Prozesse optimieren und effizient gestalten

Zürich
Donnerstag, 02. Feb. 2023, 08.00 - 10.00 Uhr

Digitalisierung, Webauftritt

Digitalisierung mitgestalten - Worauf kommt es an? Wie wichtig ist die Webseite? Webseite mit Word Press? Interne Prozesse optimieren

Ja

Organisator: B. Isik - SNF Academy

Kontaktinformation: Birol Isik, E-Mailinfo AT bkcc DOT ch

https://digitalisierung-heute.ch/digitalisierung-informationstag-schweiz/

Veranstaltungen
01.03.2023 - 09.03.2023

Online
Mittwoch, 01. März 2023, 00.00 Uhr - Donnerstag, 09. März 2023, 00.00 Uhr

Online Webinar

Wie gehen wir mit diesen Veränderungen um? Was ist notwendig, damit wir die Digitalisierung im Unternehmen klappt? Veränderungsprozesse verstehen und entsprechend handeln Mitarbeiter als Botschafter Webseite mit WordPress erstellen SEA /SEO (Ads aufschalten)

Ja

Organisator: B. Isik - SNF Academy

Kontaktinformation: B. Isik, E-Mailinfo AT snfa DOT ch

https://www.fernstudiumfitness.ch/digitalisierung-schweiz/