Simon:
This issue is version specific in its resolution.
Notwisthstanding some fairly large 'real' ones, I have built some enormous dev mail databases with 'fake' users -- perl scripts pumping 'stuff' for days. I have had varying results depending on the MySQL version, file system and the drive controllers. (MySQL 5.0.15 on UFS2 with hardware raid can give you some really twisted storage capabilities at good speed.)

MySQL counts the null integers as bytes if they are used or not say for example an empty varchar(50) field still uses 50 bytes. The maximum size of a row in a |MyISAM| table is 65,534 bytes. Each |BLOB| and |TEXT| column accounts for only five to nine bytes toward this size. You can delve further at http://dev.mysql.com/doc/refman/5.0/en/storage-requirements.html

This is what I have done without pain. 4 Gigabytes is actually not that much is it?

mysql> ALTER TABLE dbmail_messageblks MAX_ROWS=10000000000 AVG_ROW_LENGTH=40000;
Query OK, 0 rows affected (0.02 sec)
Records: 0  Duplicates: 0  Warnings: 0

mysql> ALTER TABLE dbmail_physmessage MAX_ROWS=10000000000 AVG_ROW_LENGTH=40000;
Query OK, 0 rows affected (0.03 sec)
Records: 0  Duplicates: 0  Warnings: 0

mysql> ALTER TABLE dbmail_headername MAX_ROWS=10000000000 AVG_ROW_LENGTH=40000;
Query OK, 12 rows affected (0.02 sec)
Records: 12  Duplicates: 0  Warnings: 0

mysql> ALTER TABLE dbmail_datefield MAX_ROWS=10000000000 AVG_ROW_LENGTH=40000;
Query OK, 0 rows affected (0.05 sec)
Records: 0  Duplicates: 0  Warnings: 0

etc...


best...
Mike




Simon wrote:

It looks like we have reached the Max_data_length for the
dbmail_messageblks table, this is currently 4294967295 (which is 4GB
im gussing - which is about right). From the mysql docs, this can be
easliery solved by running:

ALTER TABLE tbl_name MAX_ROWS=1000000000 AVG_ROW_LENGTH=nnn;


Any idea what i would put in the AVG_ROW_LENGTH= here?

From the mysql docs: "You have to specify AVG_ROW_LENGTH only for tables with BLOB or TEXT columns; in this case, MySQL can't optimize the space required based only on the number of rows."

show table status from dbmail like 'dbmail_messageblks';

give me an AVG_ROW_LENGTH of 35381, is this what i use here?

Thanks!!!

Simon
_______________________________________________
Dbmail mailing list
Dbmail@dbmail.org
https://mailman.fastxs.nl/mailman/listinfo/dbmail


Reply via email to