Da una rapida prova utilizzando i tuoi dati + avg_row_length ho ottenuto i seguenti risultati:
codice:
SHOW CREATE TABLE TEST:
CREATE TABLE `test` (
`id` int(10) unsigned NOT NULL auto_increment,
`prova1` int(11) NOT NULL default '0',
`prova2` int(11) NOT NULL default '0',
PRIMARY KEY (`id`)
) TYPE=MyISAM MAX_ROWS=50 AVG_ROW_LENGTH=100
SHOW TABLE STATUS
test MyISAM Fixed 0 0 0 851967 1024 0 1
2003-12-21 15:02:54 2003-12-21 15:02:54 NULL
max_rows=50 avg_row_length=100
Lo script:
Codice PHP:
<?
mysql_connect('localhost', 'root', '');
mysql_select_db('test');
for($i = 0; $i < 66000; $i++) {
$query = "INSERT INTO test (prova1, prova2) VALUES(".mt_rand(-65536, 65536).", ".mt_rand(-65536, 65536).")";
print $query. "
\n";
mysql_query($query) or die(mysql_error());
echo "$query
";
}
mysql_close();
?>
codice:
Tipo Utilizzo
Dati 851.955 Bytes
Indice 401.408 Bytes
Totale 1.224 KB
Formato fisso
Righe 65.535
Lunghezza riga ø 13
Dimensione riga ø 19 Bytes
Prossimo Autoindex 65.536
Creazione 21 Dic, 2003 at 03:02 PM
Ultimo cambiamento 21 Dic, 2003 at 03:02 PM
.......
INSERT INTO test (prova1, prova2) VALUES(-31265, -65223)
INSERT INTO test (prova1, prova2) VALUES(-31265, -65223)
INSERT INTO test (prova1, prova2) VALUES(57020, 50313)
The table 'test' is full
Quindi la cosa funge, non riduce la capacita' in modo arbitrario, ma nel valore massimo realizzabile con i bit necessari a soddisfare la richiesta fatta. Mi pare che quella che riporto sia la minima dimensione impostabile cioe' complessivamente circa 1.2 megabyte. come visibile in tabella.
Prova ad alterare MAX_ROWS=50 AVG_ROW_LENGTH=100
con alter table e vedrai la dinamica di incremento. Non solo, provando ad impostare dimensioni di tabella maggiori si vedra' molto chiaramente un incremento dei tempi necessari all'inserimento delle righe. Nell'esempio riportato la query con 65535 righe inserite e fatta rapidamente, con una tabella da 2giga va invece in time-out dei 30 secondi. Stessa tabella e stessa quantita' di dati da inserire.
Da tenere in considerazione quest'ultima annotazione....