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 » Do 24. Apr 2003, 07:02

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 » Do 24. Apr 2003, 08:01

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 » Do 24. Apr 2003, 09:55

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 » Do 24. Apr 2003, 11:53

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 » Do 24. Apr 2003, 12:13

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