Beiträge: 98
Themen: 23
Registriert seit: 18.01.2006
17.12.2008, 11:38
(Dieser Beitrag wurde zuletzt bearbeitet: 17.12.2008, 12:16 von Dyers Eve.)
Hallo,
seit einiger Zeit bekomme ich vermehrt folgende Fehlermeldung beim Aufrufen meines Forums bzw. beim Wechseln zwischen Forumsseiten.
[Bild: http://travel.4apc.de/mybberror.png]
Dies tritt recht unregelmäßig auf, so dass man leider nicht sagen kann bei welcher Funktion dies genau passiert.
Ein googlen nach dieser Fehlermeldung läßt darauf schließen, dass der MySQL Server nicht optimal konfiguriert ist. Mein Problem ist, dass in meinem Forum max. 20 gleichzeitige User online sind.
Dazu läuft das Forum auf einem vServer mit 1024MB RAM garantiert, damit sollten eigentlich keine Speicherprobleme auftauchen.
Eingesetzte MySQL Version ist 4.0.18, PHP 4.3.4 .
Habt ihr irgendwelche Konfigurationsvorschläge um dieses Problem zu lösen?
Vielen Dank schonmal im voraus,
Dyers Eve
PS: Hier der Link zum Forum: http://forum.4allplayers.org
Through The Never
Beiträge: 18.383
Themen: 257
Registriert seit: 09.02.2005
Führe mal das Skript MySQLTuner aus. Dieses sollte dir in der Ausgabe die Probleme aufzeigen.
Gruß,
Michael
Support erfolgt NUR im Forum!
Bitte gelöste Themen als "erledigt" markieren.
Beiträge mit mangelhafter Rechtschreibung/Grammatik werden kommentarlos gelöscht.
Beiträge: 98
Themen: 23
Registriert seit: 18.01.2006
Vielen Dank Michael für den Link,
ich habe auch gleich etwas "herumexperimentiert". Viele Sachen konnte ich fixen und das Forum fühlt sich etwas schneller an nachdem ich einige Variablen hinzugefügt habe.
Eine Sache wird aber jedes Mal bemängelt ( mal abgesehen von der MySQL Version ;-) ) und das sind die JOINS die ohne Indexes ausgeführt werden und das Anlegen von Temp-Tables auf der HDD (33%) .
Sind diese beiden Sachen normal, denn ein Verstellen der Größen
join_buffer_size ( momentan 2M)
tmp_table_size (momentan 32M)
max_heap_table_size (momentan 32M)
bringt keine Veränderung.
Mfg, Dyers Eve
Through The Never
Beiträge: 18.383
Themen: 257
Registriert seit: 09.02.2005
Exportiere bitte nur die Struktur deiner Datenbank per phpMyAdmin o.Ä. und schicke den Dump an support[at]mybboard[punkt]de.
Beachte, dass die Hinweise des Skripts erst dann ernstzunehmen sind, wenn der MySQL-Server mindestens 24 Stunden läuft.
Gruß,
Michael
Support erfolgt NUR im Forum!
Bitte gelöste Themen als "erledigt" markieren.
Beiträge mit mangelhafter Rechtschreibung/Grammatik werden kommentarlos gelöscht.
Beiträge: 98
Themen: 23
Registriert seit: 18.01.2006
Stimmt, hab gerade mal wieder nach geschaut und tatsächlich ist ein weiteres Problem hinzugekommen, mal sehen, wie es morgen aus sieht.
Mfg, Dyers Eve
PS: E-Mail ist raus.
Through The Never
Beiträge: 18.383
Themen: 257
Registriert seit: 09.02.2005
17.12.2008, 22:29
(Dieser Beitrag wurde zuletzt bearbeitet: 17.12.2008, 23:21 von Michael.)
Bei dir fehlen tatsächlich einige Indexe. Ich melde mich deshalb später nochmal.
Edit: Führe bitte diese Queries in der Datenbank aus:
Code: ALTER TABLE `mybb_adminsessions` DROP INDEX `uid`;
ALTER TABLE `mybb_adminsessions` DROP INDEX `dateline`;
ALTER TABLE `mybb_announcements` ADD KEY fid (fid);
ALTER TABLE `mybb_attachments` ADD KEY posthash (posthash);
ALTER TABLE `mybb_attachments` ADD KEY pid (pid, visible);
ALTER TABLE `mybb_attachments` ADD KEY uid (uid);
ALTER TABLE `mybb_banned` ADD KEY uid (uid);
ALTER TABLE `mybb_banned` ADD KEY dateline (dateline);
ALTER TABLE `mybb_captcha` ADD KEY imagehash (imagehash);
ALTER TABLE `mybb_captcha` ADD KEY dateline (dateline);
ALTER TABLE `mybb_events` ADD KEY daterange (starttime, endtime);
ALTER TABLE `mybb_events` ADD KEY private (private);
ALTER TABLE `mybb_moderatorlog` ADD KEY tid (tid);
ALTER TABLE `mybb_moderators` ADD KEY uid (uid, fid);
ALTER TABLE `mybb_pollvotes` ADD KEY pid (pid, uid);
ALTER TABLE `mybb_posts` ADD KEY tid (tid, uid);
ALTER TABLE `mybb_posts` ADD KEY uid (uid);
ALTER TABLE `mybb_posts` ADD KEY dateline (dateline);
ALTER TABLE `mybb_privatemessages` DROP INDEX `uid`;
ALTER TABLE `mybb_privatemessages` ADD KEY uid (uid, folder);
ALTER TABLE `mybb_reportedposts` ADD KEY fid (fid);
ALTER TABLE `mybb_reportedposts` ADD KEY dateline (dateline);
ALTER TABLE `mybb_reputation` ADD KEY uid (uid);
ALTER TABLE `mybb_reputation` ADD KEY dateline (dateline);
ALTER TABLE `mybb_sessions` ADD KEY `time` (`time`);
ALTER TABLE `mybb_sessions` ADD KEY uid (uid);
ALTER TABLE `mybb_threadratings` ADD KEY tid (tid, uid);
ALTER TABLE `mybb_threads` ADD KEY fid (fid, visible, sticky);
ALTER TABLE `mybb_threads` ADD KEY dateline (dateline);
ALTER TABLE `mybb_threads` ADD KEY lastpost (lastpost, fid);
ALTER TABLE `mybb_threads` ADD KEY firstpost (firstpost);
ALTER TABLE `mybb_threads` ADD KEY uid (uid);
ALTER TABLE `mybb_threadsubscriptions` ADD KEY uid (uid);
ALTER TABLE `mybb_threadsubscriptions` ADD KEY tid (tid,notification);
ALTER TABLE `mybb_users` DROP INDEX `lastvisit`;
ALTER TABLE `mybb_users` DROP INDEX `regdate`;
ALTER TABLE `mybb_users` ADD KEY usergroup (usergroup);
ALTER TABLE `mybb_users` ADD KEY `birthday` (`birthday`)
Gruß,
Michael
Support erfolgt NUR im Forum!
Bitte gelöste Themen als "erledigt" markieren.
Beiträge mit mangelhafter Rechtschreibung/Grammatik werden kommentarlos gelöscht.
Beiträge: 98
Themen: 23
Registriert seit: 18.01.2006
18.12.2008, 01:03
(Dieser Beitrag wurde zuletzt bearbeitet: 18.12.2008, 01:05 von Dyers Eve.)
Ich habe die Queries ausgeführt, hier das Ergebnis:
[Bild: http://travel.4apc.de/mybbindex.png]
Danach habe ich nochmal eine Änderung vorgenommen und zumindest zeigt jetzt zum ersten Mal das Tool keine Fehler an, bis auf die nicht mehr ganz so aktuelle MySQL-Version.
Ich werde das Tool morgen Nacht nochmal ausführen um zu schauen wie es nach 24h aussieht.
Vielen Dank Michael
Mfg, Dyers Eve
Through The Never
Beiträge: 98
Themen: 23
Registriert seit: 18.01.2006
Ich habe noch zwei weitere Index Probleme gefunden, bei
mybb_threadsread fehlte der Index "dateline" und mybb_threadviews hatte keine Index ich habe beide Indexe manuell nach deinem Vorbild hinzugefügt. Dies ist mir deshalb aufgefallen, weil ich heute morgen wieder 135 JOINS ohne Indexe hatte. Mal schauen, ob die Zahl nun endlich konstant bleibt.
Mfg, Dyers Eve
Through The Never
Beiträge: 9.560
Themen: 197
Registriert seit: 27.12.2007
MyBB-Version: 1.8
06.01.2009, 20:59
(Dieser Beitrag wurde zuletzt bearbeitet: 06.01.2009, 21:54 von Jockl.)
Hallo zusammen,
bei mir (V 1.2!) zeigt der MySQLTuner seit gestern auch ein Problem mit den sog. Joins performed without indexes an. Es wird die Zahl 546 ausgeben und vorgeschlagen, die join_buffer_size auf > 128k zu setzen.
Wenn ich mir Michaels Vorschlag ansehe, bei den entsprechenden Tabellen die Keys bzw. Indizes (neu) zu setzen frage ich mich, warum wird das eigentlich notwendig? Sind diese Keys nicht automatisch von MyBB bei der Erstellung der Tabellen gesetzt oder gehen die durch irgendwelche Aktionen verloren? Wenn zweiteres, wie passiert so etwas und kann es verhindert werden?
Beiträge: 18.383
Themen: 257
Registriert seit: 09.02.2005
Dass Abfragen ausgeführt werden, die nicht auf die Indexe zurückgreifen, lässt sich leider nicht immer vermeiden. Plugins können ebenfalls dazu beitragen. Der vom MySQLTuner ausgegebene Wert umfasst die Anzahl der Abfragen seit dem Start des Datenbankservers. Wenn dieser schon länger läuft, ist das ein üblicher Wert.
Warum die Indexe verloren gegangen sind, weiß ich nicht. In Dumps sind diese enthalten, so dass bei einem Umzug auch keine Probleme entstehen dürften.
Ob alle Indexe existieren, kann nur manuell überprüft werden. Öffne die Datei install/resources/mysql_db_tables.php und schau dir die Queries zur Erstellung der einzelnen Tabellen an. Am Ende einer Abfrage gibt es Zeilen, die mit "KEY" beginnen. Diese Zeilen erstellen den danach genannten Index. In phpMyAdmin kannst du dir die Struktur einer Tabelle ansehen. Dort findest du auch Informationen zu den Indexen, die in der jeweiligen Tabelle gesetzt sind.
Gruß,
Michael
Support erfolgt NUR im Forum!
Bitte gelöste Themen als "erledigt" markieren.
Beiträge mit mangelhafter Rechtschreibung/Grammatik werden kommentarlos gelöscht.
|