Welche MyISAM optionen habt ihr denn in MySQL gesetzt, wenn die table groesser werden als sie sollten? Wenn
myisam_recover_options=BACKUP
gesetzt ist, dann wird im hintergrund eine .bak datei mit timestamp angelegt die speicher braucht - ansonsten eben auf OFF setzten.
Zitat
Ich bin sparsam, ich will keine unnötigen "0"en in der Datenbank stehen haben
Wenn moeglich sollte man aber keine NULL-werte in der DB zulassen; weil dann abfragen langsamer werden und der verwaltungsaufwand steigt. Soweit ich das verstanden habe muss MySQL dann im hintergrund zum eigentlichen wert noch ein weiteres flag setzten ob das feld NULL oder NOT NULL ist, bei WHERE, JOIN, GROUP usw. immer beide checks machen, also einmal ob es NULL oder ein gesetzter wert ist, und dann ob der wert entsprechend der abfrage passt.
Ein anderes problem mit NULL werten hatte ich mal bei einer alten MySQL konfiguration, dabei wurden beim addieren von feldern die auch NULL sein konnten das ergebniss immer zurueckgesetzt:
SUM(1,2,NULL,3,4) ergab dann 7 (3+4), und nicht 10, da x+NULL immer 0 ergeben hat.
Die filegroessen kann man auch mit einer simplen SQL abfrage sehen, ohne erst PHP code dafuer schreiben zu muessen:
SELECT TABLE_SCHEMA, TABLE_TYPE, GROUP_CONCAT(TABLE_NAME) as table_names, ENGINE, SUM(TABLE_ROWS) as total_rows, SUM(DATA_LENGTH)/1024/1024 as total_data_MB, SUM(INDEX_LENGTH)/1024/1024 as total_index_lengt_MB
FROM information_schema.tables
WHERE TABLE_SCHEMA LIKE 'datenhalde'
GROUP BY ENGINE, TABLE_TYPE