MariaDB/MySQL: row size too large

KeepXtreme

Lt. Commander
Registriert
Sep. 2008
Beiträge
1.402
abend

ich hab gerade ein Problem, an dem ich nicht weiter komme:

auf unserem Server läuft ein MariaDB 10.0-Server und eine sympa-Installation. Wenn ich versuche, große Mails an die Verteiler zu schicken, scheitert die Verarbeitung in sympa aufgrund von Beschränkungen des SQL-Servers.
Nach etwas Recherche habe ich bereits das Dateiformat für die innodb auf "Barracuda" umgestellt und die Tabelle auf row_format=COMPRESSED geändert, bisher nur mit einer jetzt leicht veränderten Fehlermeldung (=DYNAMIC hat auch nicht weiter geholfen).

Der aktuelle Fehler lautet:
Code:
 Unable to add message in bulkspool_table "INSERT INTO bulkspool_table (messagekey_bulkspool, messageid_bulkspool, message_bulkspool, lock_bulkspool, dkim_d_bulkspool, dkim_i_bulkspool, dkim_selector_bulkspool, dkim_privatekey_bulkspool, dkim_header_list_bulkspool) VALUES ('5dd862261a334de278091645baee4d8a', '<545921F1.5080600@verteiler.de>', 'TUlNRS1WZXJzaW9uOiAxLjAKQXV0by1TdWJtaXR0ZWQ6IGF1dG8tcmVwbGllZApGcm9tOiBTWU1Q\nQSA8c3ltcGFAZm1jLnVuaS1', 1, NULL ,NULL ,NULL, '', NULL)"; error : Row size too large (> 8126). Changing some columns to TEXT or BLOB may help. In current row format, BLOB prefix of 0 bytes is stored inline.

hat irgendwer einen hilfreichen Tipp?
 
Ist doch eindeutig was da steht: Dein Table hat zu viele Spalten / zu große Spalten. Allerdings kenn ich die Fehlermeldung eher vom "ALTER TABLE", wenn man eine Spalte hinzufügt, für die kein Platz mehr ist.
Bei MySQL ist die max row size allerdings standardmäßig größer - 16k oder 32k, soweit ich mich erinnere.
 
wäre schön, wenn es so einfach wäre... die Tabelle ist nicht besonders groß - und wird so standardmäßig auch von sympa angelegt, allerdings finde ich nicht besonders viel, wenn ich nach dem Fehler suche...
hier mal die Struktur der Tabelle:
table.PNG
 
Mach ma aus dem 2000-Zeichen-Feld n TEXT oder BLOB. Mal sehen, ob das nicht schon reicht.
 
ich hab jetzt 2000 wie auch das 500 varchar-Feld mal in TEXT geändert, kein verändertes Verhalten... :S

edit:// und gerade hat sympa die Datenbankstruktur automatisch "repariert"...
 
Zuletzt bearbeitet:
Hm, dann weiß ich auch nicht weiter. Ich hatte bei ner MyISAM - Tabelle mal die Row Size überschritten, aber die hatte auch wirklich zig Spalten mit varchar(256). Da half es, ein paar Spalten auf TEXT zu stellen.

Ich kann mich düster dran erinnern, dass PostgreSQL längere Zeilen als MySQL ermöglicht.
 
da auf der Datenbank noch etliche andere Applikationen laufen ist ein Umzug einfach so nicht möglich... :S könnte es sein, dass es sich dabei um einen Bug handelt? Eigentlich sollte der Fehler ja beim erstellen/verändern der Tabelle auftreten?
 
Du kannst auf einem System auch 2 Datenbanken installieren und parallel benutzen ;)
 
@benneque: kann ja, will nein: doppelter Wartungsaufwand bzw. auch für BackUps etc., gerade Datenbanksysteme fressen viel RAM... wäre eine Notlösung... vor allem, da nicht garantiert ist, das ich mit einem anderen System keine Probleme mehr habe...
@Daaron: danke, das probiere ich mal - habs mal auf 128M hochgeschraubt, mal schaun ob das reicht...

edit:// Danke! Nachdem ich das jetzt auf 256M hochgepusht habe, frisst er Anhänge bis ca. 8MB -,-
 
Zuletzt bearbeitet:
Zurück
Oben