MySQL一张表到底能存多少数据?

文 / @WordPress主题

MySQL一张表到底能存多少数据?

MySQL是一个常用的关系型数据库管理系统,我们在使用MySQL时通常都会关注这个数据库能够存储多少数据。今天我们就来讨论一下MySQL一张表到底能存多少数据。

1、数据页的大小

在MySQL中,数据也是分页的,为了提高吞吐率,MySQL的数据页大小是16KB,也就是说一个节点的数据大小是16KB。我们可以通过如下命令查询到数据页的具体大小:

mysql> SHOW GLOBAL STATUS LIKE 'innodb_page_size';

+------------------+-------+
| Variable_name | Value |
+------------------+-------+
| Innodb_page_size | 16384 |
+------------------+-------+
1 row in set (0.00 sec)

所以,如果我们只存储一个节点的数据,其大小为16KB。

2、具体计算方法

2.1、根节点计算

首先我们只看根节点,假设我们设置的数据类型是bigint,大小为8b,在数据本身还有一小块空间,用来存储下一层索引数据页的地址,大小为6kb。所以我们可以计算出来一个数据为(8b+6b=14b)的空间(以bigint为例)。

我们刚才说到一个数据页的大小是16KB,也就是(16*1024)b,那么根节点是可以存储(16*1024/(8+6))个数据的,结果大概是1170个数据。

2.2、其余层节点计算

第二层的数据量是1170*1170=1368900,问题在于第三层,因为innodb的叶子节点,是直接包含整条mysql数据的,如果字段非常多的话数据所占空间是不小的,我们这里以1kb计算,所以在第三层,每个节点为16kb,那么每个节点是可以放16个数据的,所以最终mysql可以存储的总数据为1170*1170*16=21902400(千万级条)。

3、总结

综上,我们通过计算得出,MySQL一张表的最大数据量为21902400(千万级条)。实际上,一般在MySQL的一张表中超过了千万数据,我们就会考虑进行分表操作了。

以上就是MySQL一张表到底能存多少数据的详细内容,希望对大家有所帮助。

添加UTHEME为好友
扫码添加UTHEME微信为好友
· 分享WordPress相关技术文章,主题上新与优惠动态早知道。
· 微信端最大WordPress社群,限时免费入群。