MySQL i sig erbjuder inget kvotsystem. Att använda metoden som föreslagits av James McNellis skulle förmodligen fungera, men att ha InnoDB nå en hård kvotgräns plötsligt skulle absolut inte gynna stabiliteten; alla datafiler är fortfarande anslutna via systemtabellutrymmet som inte kan bli av med.
Tyvärr ser jag inget praktiskt sätt att uppnå det du vill. Om du är orolig för att diskutrymmesanvändningen överskrider fördefinierade gränser och inte vill gå vägen för externa kvotregleringar, föreslår jag att du fortsätter med de kombinerade tabellutrymmesinställningarna (dvs. ingen innodb_file_per_table
) och ta bort :autoextend
från konfigurationen.
På så sätt kommer du fortfarande inte att få användar- eller schemaspecifika gränser, men åtminstone förhindra att disken fylls upp med data, eftersom tabellutrymmet inte kommer att växa förbi sin ursprungliga storlek i den här inställningen. Med innodb_file_per_table
det finns tyvärr inget sätt att konfigurera var och en av dem att stanna vid en viss maximal storlek.
Detta är en av aspekterna som MySQL skiljer sig från andra, förmodligen mer företagsnivådatabaser. Missförstå mig dock inte fel, vi använder InnoDB med massor av data i flera tusen installationer, så det har verkligen visat sig vara redo för produktionsgrad. Bara hanteringsfunktionerna är lite bristfälliga ibland.