mySQL 数据表似乎卡在 16777215 行

wri*_*t17 2 mysql myisam mysql-5.1

我正在创建一个 MySQL 表并从本地文件加载数据。

CREATE TABLE `patent` (

  `seq_number` mediumint(9) unsigned NOT NULL auto_increment,
  `seq_id` varchar(24) default NULL,
  `date` date default NULL,
  `patent_number` varchar(16) default NULL,
  `pat_seq_number` smallint(6) unsigned default '0',
  `organism` text,
  `assignee` text,
  `seq_length` int(8) default '0',
  `seq` text,
  PRIMARY KEY  (`seq_number`),
  Index `seq_id` (`seq_id`),
  Index `patent_number` (`patent_number`),
  Index `pat_seq_number` (`pat_seq_number`),
  Index `seq_length` (`seq_length`)

) Engine = MyISAM MAX_ROWS=536870912;


load data local infile '/data/p_table.txt' into table  patent ignore 0 lines 
(seq_id, date, patent_number, pat_seq_number, organism, assignee, seq, seq_length);
Run Code Online (Sandbox Code Playgroud)

似乎我被困在行数上:

mysql> select count(*) from patent;

+----------+
| count(*) |
+----------+
| 16777215 |
+----------+

1 row in set (0.00 sec)
Run Code Online (Sandbox Code Playgroud)

虽然我的txt数据表大约有2000万行(记录)。

我试过 Engine=InnoDB

我也试过 Engine = MyISAM MAX_ROWS=200000000(2亿)

mysql> show table status like 'patent'\G

*************************** 1. row ***************************

           Name: patent

         Engine: MyISAM

        Version: 10

     Row_format: Dynamic

           Rows: 16777215

 Avg_row_length: 244

    Data_length: 4098768552

Max_data_length: 281474976710655

   Index_length: 715227136

      Data_free: 0

 Auto_increment: 16777216

    Create_time: 2013-04-14 12:46:10

    Update_time: 2013-04-14 12:50:43

     Check_time: 2013-04-14 12:54:08

      Collation: latin1_swedish_ci

       Checksum: NULL

 Create_options: max_rows=536870912
        Comment: 

1 row in set (0.00 sec)
Run Code Online (Sandbox Code Playgroud)

手册和在线建议都说我应该能够创建大表。

她是我的 uanme linux 输出。

Linux ... 2.6.32-279.el6.x86_64 #1 SMP Wed Jun 13 18:24:36 EDT 2012 x86_64 x86_64 x86_64 GNU/Linux

这是 mySQL 的版本:

欢迎使用 MySQL 监视器。命令以 ; 结尾 或\g。

您的 MySQL 连接 ID 是 318 服务器版本:5.1.67 源代码分发

如何创建更大的表以将行数增加到大于 2**24=1677215 行?

Han*_*non 6

auto_increment'seq_number' 字段的最大值为 16777215。如果您需要超过 16,777,215 条记录,您应该使该字段使用 anint或 a bigint

有关mediumint(9)格式的信息,请参阅 MySQL 文档。

https://dev.mysql.com/doc/refman/5.0/en/integer-types.html