MySQL数据库表中的最大记录数
MySQL数据库表的记录上限是多少。我想知道自动递增字段。如果我添加数百万条记录,会发生什么?如何处理这种情况?MySQL数据库表中的最大记录数,mysql,database,limit,database-table,Mysql,Database,Limit,Database Table,MySQL数据库表的记录上限是多少。我想知道自动递增字段。如果我添加数百万条记录,会发生什么?如何处理这种情况? 谢谢 mysql int类型可以执行很多行: 无符号int最大值为4294967295 无符号的bigint最大值是18446744073709551615整数的最大值与表中可以存储的最大行数几乎没有关系 诚然,如果使用int或bigint作为主键,则主键数据类型中的行数只能与唯一值的数目相同,但不必将主键设置为整数,可以将其设置为CHAR(100)。还可以在多个列上声明主键 除了行
谢谢 mysql int类型可以执行很多行: 无符号
int
最大值为4294967295
无符号的
bigint
最大值是18446744073709551615
整数的最大值与表中可以存储的最大行数几乎没有关系
诚然,如果使用int或bigint作为主键,则主键数据类型中的行数只能与唯一值的数目相同,但不必将主键设置为整数,可以将其设置为CHAR(100)。还可以在多个列上声明主键
除了行数之外,表大小还有其他限制。例如,您可以使用具有文件大小限制的操作系统。或者你可以有一个300GB的硬盘,如果每行大小为1KB,它只能存储3亿行
数据库大小的限制非常高:
MyISAM存储引擎支持每个表232行,但是您可以使用——使用大表选项构建MySQL,使其支持每个表多达264行
InnoDB存储引擎每个表有一个内部6字节的行ID,因此最大行数等于248或281474976710656
InnoDB表空间的表大小也有64 TB的限制。有多少行可以放入其中取决于每行的大小
64TB限制假定默认页面大小为16KB。您可以增加页面大小,从而将表空间增加到256TB。但我认为,在您将表扩展到该大小之前,您会发现其他性能因素使此不可取。没有限制。它只取决于可用内存和系统最大文件大小。但这并不意味着在处理数据库内存使用问题时不应该采取预防措施。始终创建一个脚本,该脚本可以删除不用的行,或者将总行数保持在一个特定数字内,比如1000行。我建议,永远不要删除数据。不要说表的长度是否超过1000,请截断表的结尾。在您的计划中需要有真正的业务逻辑,比如这个用户不活动了多长时间。例如,如果超过1年,则将其放在不同的表中。你会在缓慢的时间内每周或每月在维护脚本中发生这种情况。
当您在表中遇到多达多行时,您应该开始对表进行分片或分区,并按年份将旧数据放入旧表中,例如users\u 2011\u jan、users\u 2011\u feb或use number for the month。然后更改编程以使用此模型。可能会创建一个信息较少的新表,以较少的列汇总数据,然后仅在需要更多信息时(例如用户查看其配置文件时)才引用较大的分区表。所有这些都应该非常仔细地考虑,以便在将来重新考虑不会太昂贵。您还可以只将一直访问站点的用户放在一个表中,而从不访问站点的用户则放在一组存档的表中。在InnoDB中,表大小限制为64 TB,MySQL行大小限制为65535,可以有1073741824行。这将是使用最大行大小限制的最小记录数。但是,如果行大小较小,则可以添加更多记录。根据中的可伸缩性和限制部分,
MySQL支持大型数据库。他们使用MySQL服务器和包含5000万条记录的数据库。一些用户使用MySQL服务器,它有200000个表和大约5000000000行。
- MySQL表的内部表示具有最大行大小
限制为65535字节,即使存储引擎能够
支持较大的行。BLOB和TEXT列只贡献9到12
由于存储了字节的内容,因此字节数接近行大小限制
与行的其他部分分开
- InnoDB表的最大行大小,适用于数据
本地存储在数据库页面中,略少于半个页面。例如,对于默认的16KB InnoDB页面大小,最大行大小略小于8KB,这是由InnoDB_page_size配置选项定义的。“”
- 如果包含可变长度列的行超过InnoDB最大行大小,InnoDB将选择可变长度列作为外部页外存储,直到该行符合InnoDB行大小限制。
在本地存储的可变长度列的数据量
存储的页外数据因行格式而异。有关详细信息,请参阅
“”
- 不同的存储格式使用不同数量的页眉和尾部数据,这会影响行的可用存储量李>
链接
行大小限制
给定表的最大行大小由几个因素决定:
MySQL表的内部表示具有65535字节的最大行大小限制,即使存储引擎能够支持较大的行。BLOB和TEXT列只为行大小限制贡献9到12个字节,因为它们的内容与行的其余部分分开存储
InnoDB表的最大行大小(适用于数据库页面中本地存储的数据)对于4KB、8KB、16KB和32KB InnoDB_页面大小设置来说略小于半页。例如,对于默认的16KB InnoDB页面大小,最大行大小略小于8KB。对于64KB页面,最大行大小略小于16KB。参见第15.8.8节“InnoDB表格的限制”
如果包含可变长度列的行超过InnoDB最大行数
The maximum row size for a given table is determined by several factors: