Mysql中的单表最大记录是多少

2023-02-18 15:02:38 mysql 记录

mysql单表最大记录数不能超过多少

其实mysql本身并没有对单表最大记录数进行限制,这个数值取决于你的操作系统对单个文件的限制本身。

从性能角度来讲,Mysql单表数据不要超过多少呢?

业界流传是500万行,超过500万行就要考虑分库分表了。

曾经在中国互联网技术圈广为流传着这么一个说法:Mysql单表数据量大于2000万行,性能会明显下降。事实上,这个传闻最早起大概是这样的,当年的DBA测试Mysql性能时发现,当单表的量在2000万行量级时,Sql操作的性能急剧下降,因此,结论由此传到业界的其他公司。所以就在业界流传开这么一个说法。

再后来,阿里巴巴《Java开发手册》提出单表行数超过500万行或者单表容量超过2GB,才推荐进行分库分表。

那么当单表容量超过500万行,查询效率下降后,我们可以如何应付呢?

有如下几种方式(来源于真实的企业):

  • 对于使用不多的表(外部依赖少,信息不重要),可以直接清除老表,数据归档到HBase(或类似的,大容量成本低的冷库)
  • 分库分表
  • 老表保留,旧数据归档(参考第一点)

mysql单表存储数据量有上限吗

在mysql中,每个数据库最多可创建20亿个表,

一个表允许定义1024列,

每行的最大长度为8092字节(不包括文本和图像类型的长度)。

当表中定义有varchar、nvarchar或varbinary类型列时,如果向表中插入的数据行超过8092字节时将导致Transact-SQL语句失败,并产生错误信息。

SQL Server对每个表中行的数量没有直接限制,但它受数据库存储空间的限制。

每个数据库的最大空间1048516TB,所以一个表可用的最大空间为1048516TB减去数据库类系属统表和其它数据库对象所占用的空间。

总结

以上为个人经验,希望能给大家一个参考,也希望大家多多支持。

相关文章