MySQL selbst bietet kein Quotensystem an. Die Verwendung der von James McNellis vorgeschlagenen Methode würde wahrscheinlich funktionieren, aber wenn InnoDB plötzlich eine harte Quotengrenze erreicht, würde dies sicherlich nicht der Stabilität zugute kommen. Alle Datendateien sind immer noch über den Systemtabellenbereich verbunden, der nicht entfernt werden kann.
Leider sehe ich keinen praktischen Weg, um das zu erreichen, was Sie wollen. Wenn Sie Bedenken haben, dass die Speicherplatznutzung vordefinierte Grenzen überschreitet, und nicht den Weg externer Quota-Regelungen gehen möchten, empfehle ich, bei den kombinierten Tablespace-Einstellungen zu bleiben (d. h. kein innodb_file_per_table
) und entfernen Sie :autoextend
aus der Konfiguration.
Auf diese Weise erhalten Sie immer noch keine benutzer- oder schemaspezifischen Einschränkungen, verhindern aber zumindest, dass die Festplatte mit Daten gefüllt wird, da der Tabellenbereich in diesem Setup nicht über seine ursprüngliche Größe hinauswächst. Mit innodb_file_per_table
leider gibt es keine Möglichkeit, sie so zu konfigurieren, dass sie bei einer bestimmten maximalen Größe aufhören.
Dies ist einer der Aspekte, die MySQL von anderen Datenbanken auf Unternehmensebene unterscheidet. Verstehen Sie mich aber nicht falsch, wir verwenden InnoDB mit vielen Daten in mehreren tausend Installationen, es hat sich also als produktionsreif erwiesen. Lediglich die Verwaltungsfunktionen fehlen manchmal etwas.