Tunen von Contenido / Geschwindigkeitserhöhung um den Faktor

Gesperrt
detlev
Beiträge: 156
Registriert: Mi 18. Sep 2002, 08:05
Wohnort: Bochum
Kontaktdaten:

Tunen von Contenido / Geschwindigkeitserhöhung um den Faktor

Beitrag von detlev »

Ich hatte das Problem, dass mein zentrales Newsmodul, das über 43 installierte Clients sämtliche News aus den Newsverzeichnissen ausliest, eine Datenbankabfragezeit von 60 Sekunden brauchte.
Genauso benötigten andere Modul mit Ansteigen des Siteumfangs immer längere Rechenzeiten des mySQL-Servers.
Durch Indizieren der Datenbanktabellen ist die Abfragezeit des Newsmoduls von 60 Sekunden auf 0,4 Sekunden geschrumpft.
Das wirkt sich natürlich auch auf sämtliche anderen Abfragen aus.

Das hat meine Befürchungen um die Grenzen von Contenido erstmal wieder beruhigt.

So gings:

In den Tabellen
con_side_lang einen Index auf idside
con_cat_side Index auf idcat und Index auf idside,
con_cat_tree Index auf idcat,
con_cat_lang Index auf name und Index auf idcat
hk-cons
Beiträge: 99
Registriert: Di 25. Mär 2003, 09:08
Kontaktdaten:

Beitrag von hk-cons »

Hallo

ja eine Datenbank lebt eben :lol:
Und da bei einem CMS ja lesende Zugriffe auf die Datenbank wesentlich häufiger sind als inserts, fällt der Performancenachteil durch den zusätzlichen Index-Aufbau nicht wirklich ins Gewicht .... :P
Grundsätzlich sollten ja Felder, die in der WHERE-Bedingung abgefragt werden. indiziert werden .... es sei denn, diese Tabelle hat nur eine eng begrenzte Zahl von Rows

hmm .. ich sollte mal alle meine Datenbanken nachschauen

Gruß Harald :roll:
Gott schütze die Dummen, denn sie ernähren die Wissenden
Knuds
Beiträge: 52
Registriert: Di 8. Okt 2002, 10:37
Kontaktdaten:

Beitrag von Knuds »

hi detlev,

hab leider noch nicht so viele index in mysql-tabellen angelegt. deshalb wäre es cool, wenn du die kompletten sql-commandos posten könntest: ala

Code: Alles auswählen

alter table con_side_lang add index ???
wie kann ich mir dann bestehende indexe anzeigen lassen?

Code: Alles auswählen

show tables ?
wie misst du die performance der anfrage? gibt es da für ein script? 8)

danke :D
grüsse
knuds
detlev
Beiträge: 156
Registriert: Mi 18. Sep 2002, 08:05
Wohnort: Bochum
Kontaktdaten:

Beitrag von detlev »

alter table con_side_lang add index ('idside')
ist goldrichtig
die bestehenden Indizes siehst du im Dump der Tabellen
die Abfragezeit sehe ich direkt wenn ich auf der Befehlszeile des mysql-Servers die Abfragen einsetze

die einfachste Lösung der Administrierung ist über phpMyAdmin, dort siehst du alle Indizes, und kannst sie setzen.
detlev
Beiträge: 156
Registriert: Mi 18. Sep 2002, 08:05
Wohnort: Bochum
Kontaktdaten:

Beitrag von detlev »

alter table con_side_lang add index ('idside')
alter table con_cat_side add index ('idside')
alter table con_cat_side add index ('idcat')
alter table con_cat_tree add index ('idcat')
alter table con_cat_lang add index ('idcat')

Gruße aus Bochum
Detlev
Gesperrt