First I want to know how to estimate the database size regarding the biggest table it will contains. I've the following :
+----------+------------------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+----------+------------------+------+-----+---------+-------+
| users_id | int(32) unsigned | NO | MUL | NULL | |
| s | binary(16) | NO | PRI | NULL | |
| t | binary(16) | NO | PRI | NULL | |
| x | binary(16) | NO | PRI | NULL | |
+----------+------------------+------+-----+---------+-------+
This is the table that will be significant for the size (the other table is only to maintain user data (id, user, pass, email), I don't expect them to have more than 100 entries).
I expect around 7.61263 * 10^9 entries into the table above. I made this simple calculations : 7.61263 * 10^9 + (4 Bytes + 16 Bytes + 16 Bytes + 16 Bytes) ~= 395 GB. But I don't know how to take into account the overhead coming from the dbms (indexes, database structure ...) ?
How to estimate the database size ?
What about the speed and the stability of MySQL running with this large table. Do I have to split the data over two or more databases in order to reduce the size ?