MySQL zelf biedt geen quotasysteem. Het gebruik van de door James McNellis voorgestelde methode zou waarschijnlijk werken, maar als InnoDB plotseling een harde quotumlimiet bereikt, zou dit de stabiliteit zeker niet ten goede komen; alle gegevensbestanden zijn nog steeds verbonden via de systeemtabelruimte die niet kan worden verwijderd.
Helaas zie ik geen praktische manier om te bereiken wat je wilt. Als u zich zorgen maakt over het gebruik van schijfruimte dat de vooraf gedefinieerde limieten overschrijdt en u niet de weg wilt van externe quotaregelingen, raad ik aan om bij de gecombineerde tabelruimte-instellingen te blijven (d.w.z. geen innodb_file_per_table
) en verwijder de :autoextend
uit de configuratie.
Op die manier krijgt u nog steeds geen gebruikers- of schemaspecifieke limieten, maar voorkomt u in ieder geval dat de schijf vol raakt met gegevens, omdat de tabelruimte in deze opstelling niet groter wordt dan de oorspronkelijke grootte. Met innodb_file_per_table
er is helaas geen manier om ze allemaal zo te configureren dat ze stoppen bij een bepaalde maximale grootte.
Dit is een van de aspecten waarin MySQL verschilt van andere, zogenaamd meer enterprise-level databases. Begrijp me echter niet verkeerd, we gebruiken InnoDB met veel data in enkele duizenden installaties, dus het is zeker bewezen klaar te zijn voor productiekwaliteit. Alleen de beheerfuncties ontbreken soms een beetje.