Hallo René,
Entscheidend für die Performance ist m.E. in erster Linie
* die Anzahl der gleichzeitigen User
* das Design der Datenbank
* der zur Verfügung stehende Speicher
Bei eurem Volumen dürften wohl 2 GB Speicher reichen.
Wie gut die DB ist, kann man an durch folgende Einstellungen in der mysql my.ini sehen
long_query_time = 3 [in sec. Alle Abfragen, die mehr als 3 Sec in der DB dauern, werden geloged]
slow-query-log [schaltet das Log für langsame Abfrage ein]
slow_query_log_file = "D:/#Web/#work/Log/MySQL/slow.log" [Pfad und Name der Log-Datei (hier Windows)
evtl. brauchst Du noch diesen Eintrag
log-output = FILE
ob dies bei deinem Hosting Vertrag möglich ist, weiß ich nicht, musst Du den Provider fragen.
Der Output sieht dann z.B. so aus
# User@Host: root[root] @ frank....
# Query_time: 13.427113 Lock_time: 0.000000 Rows_sent: 974 Rows_examined: 3458439
SET timestamp=1323699921;
SELECT n2.n_surn, n1.n_surname, n1.n_id FROM `wt110_name` n1
JOIN `wt110_link` ON (n_id=l_from AND n_file=l_file AND l_type='FAMS')
JOIN (
SELECT n_surn, n_file
FROM `wt110_name`
WHERE n_file=2 AND n_type!='_MARNM' AND n_surn LIKE CONCAT('@','S','%') COLLATE utf8_danish_ci ESCAPE '@'
GROUP BY n_surn COLLATE 'utf8_danish_ci', n_file
) n2
ON (n1.n_surn=n2.n_surn COLLATE 'utf8_danish_ci' AND n1.n_file=n2.n_file) AND n_type!='_MARNM';
Abfrage aller Personen deren Nachname mit "S" beginnt
Query_time: 13.427113 die Abfrage hat 13,4 sec nur in der DB gedauert
Lock_time: 0.000000 kein reseriveren für Update
Rows_sent: 974 Ergebnis 974 Zeilen (also Personen mit Nachnamen S)
Rows_examined: 3458439 Verarbeitet wurden 346 Tsd. Tabellen Einträge; allerdings habe ich nur 8,5 Tsd Personen
Hier liegt also was im argen. Die Abfrage selber kann dann mit MySQL Tools analysiert werden, was dann zu zusätzlichen Indices führen kann.
Auf Grund der Vielzahl der GedComs empfehle ich Dir folgende Indices aufzubauen (MySQL Befehle z.B. über die MySQL Workbench einzugeben):
use wbt;
create index wFile on wt110_families (f_file);
create index wFile on wt110_individuals (i_file);
create index wFile on wt110_link (l_file);
create index wFile on wt110_name (n_file);
create index wFile on wt110_other (o_file);
create index wFile on wt110_placelinks (pl_file);
create index wFile on wt110_sources (s_file);
wobei sich dies auf folgende Einträge in der config.ini.php bezieht
dbname="wbt"
tblpfx="wt110_"
Viel Erfolg
Frank
Dipl. Inform.
Frank Warius
Mobil: +49 (172) 401 6803
Tel.: +49 (2150) 60 999 48
Schützenstr. 27, 40668 Meerbusch
Frank@Warius.de | www.warius.de