我有一个数据库,其中包含体育赛事的结果。几天前,我意识到结果没有记录下来。我在Ubuntu Linux 64位上使用MySQL 5.6.14。
到目前为止,我已尝试过这些步骤:
检查我能找到的所有日志。任何日志文件都没有错误。
最大表的状态:
mysql> show table status like 'results'; +---------+--------+---------+------------+---------+----------------+-------------+-----------------+--------------+-----------+----------------+---------------------+-------------+------------+-------------------+----------+----------------+---------+ | Name | Engine | Version | Row_format | Rows | Avg_row_length | Data_length | Max_data_length | Index_length | Data_free | Auto_increment | Create_time | Update_time | Check_time | Collation | Checksum | Create_options | Comment | +---------+--------+---------+------------+---------+----------------+-------------+-----------------+--------------+-----------+----------------+---------------------+-------------+------------+-------------------+----------+----------------+---------+ | results | InnoDB | 10 | Compact | 1774207 | 222 | 394149888 | 0 | 218644480 | 28311552 | NULL | 2014-07-03 21:40:39 | NULL | NULL | latin1_swedish_ci | NULL | | | +---------+--------+---------+------------+---------+----------------+-------------+-----------------+--------------+-----------+----------------+---------------------+-------------+------------+-------------------+----------+----------------+---------+ 1 row in set (0.00 sec)
mysql> select count(*) from results; +----------+ | count(*) | +----------+ | 1763471 | +----------+ 1 row in set (0.89 sec)
关于我能做什么的任何想法?
答案 0 :(得分:0)
Mysql具有表文件的最大大小。 你在这里找到它:
一个表最多可包含1000列。
InnoDB内部最大密钥长度为3500字节,但MySQL本身将此限制为3072字节。 (对于MySQL 5.0.17之前的非64位构建,以及5.0.15之前的所有构建,为1024字节。)
单列索引的索引键最多可达767个字节。相同的长度限制适用于任何索引键前缀。请参见第13.1.8节“CREATE INDEX语法”。
除了可变长度列(VARBINARY,VARCHAR,BLOB和TEXT)之外,最大行长度略小于数据库页面的一半。也就是说,最大行长度约为8000字节。 LONGBLOB和LONGTEXT列必须小于4GB,并且总行长度(包括BLOB和TEXT列)必须小于4GB。
如果一行长度不到半页,则所有行都存储在页面内。如果它超过半页,则选择可变长度列用于外部页外存储,直到该行适合半页,如第14.2.10.2节“文件空间管理”中所述。
虽然InnoDB在内部支持大于65,535字节的行大小,但MySQL本身对所有列的总大小强加了行大小限制为65,535: