mysql单个表可以储存多少内容(浅谈mysql一张表到底能存多少数据)
mysql单个表可以储存多少内容
浅谈mysql一张表到底能存多少数据程序员平时和mysql打交道一定不少,可以说每天都有接触到,但是mysql一张表到底能存多少数据呢?计算根据是什么呢?接下来咱们逐一探讨
知识准备
数据页
在操作系统中,我们知道为了跟磁盘交互,内存也是分页的,一页大小4KB。同样的在MySQL中为了提高吞吐率,数据也是分页的,不过MySQL的数据页大小是16KB。(确切的说是InnoDB数据页大小16KB)。详细学习可以参考官网我们可以用如下命令查询到。
|
mysql> SHOW GLOBAL STATUS LIKE 'innodb_page_size' ; + ------------------+-------+ | Variable_name | Value | + ------------------+-------+ | Innodb_page_size | 16384 | + ------------------+-------+ 1 row in set (0.00 sec) |
今天咱们数据页的具体结构指针等不深究,知道它默认是16kb就行了,也就是说一个节点的数据大小是16kb
索引结构(innodb)
mysql的索引结构咱们应该都知道,是如下的b+树结构
通常b+树非叶子节点不存储数据,只有叶子节点(最下面一层)才存储数据,那么咱们说回节点,一个节点指的是(对于上图而言)
每个红框选中的部分称为一个节点,而不是说某个元素。了解了节点的概念和每个节点的大小为16kb之后,咱们计算mysql能存储多少数据就容易很多了
具体计算方法
根节点计算
首先咱们只看根节点
比如我们设置的数据类型是bigint,大小为8b
在数据本身如今还有一小块空间,用来存储下一层索引数据页的地址,大小为6kb
所以我们是可以计算出来一个数据为(8b+6b=14b)的空间(以bigint为例)我们刚刚说到一个数据页的大小是16kb,也就是(161024)b,那么根节点是可以存储(161024/(8+6))个数据的,结果大概是1170个数据如果跟节点的计算方法计算出来了,那么接下来的就容易了。
其余层节点计算
第二层其实比较容易,因为每个节点数据结构和跟节点一样,而且在跟节点每个元素都会延伸出来一个节点,所以第二层的数据量是1170*1170=1368900,问题在于第三层,因为innodb的叶子节点,是直接包含整条mysql数据的,如果字段非常多的话数据所占空间是不小的,我们这里以1kb计算,所以在第三层,每个节点为16kb,那么每个节点是可以放16个数据的,所以最终mysql可以存储的总数据为
1170 * 1170 * 16 = 21902400 (千万级条)
其实计算结果与我们平时的工作经验也是相符的,一般mysql一张表的数据超过了千万也是得进行分表操作了。
总结
最后用一张图片总结一下今天讨论的内容,希望您能喜欢
到此这篇关于浅谈mysql一张表到底能存多少数据的文章就介绍到这了,更多相关mysql表存多少数据内容请搜索开心学习网以前的文章或继续浏览下面的相关文章希望大家以后多多支持开心学习网!
原文链接:https://www.cnblogs.com/xuehao/p/14421795.html
- mysql索引建立及应用(MYSQL创建索引,这些知识应该了解)
- mysql的基本索引类型(MySQL 隔离数据列和前缀索引的使用总结)
- mysql主从模式与读写分离(磁盘写满导致MySQL复制失败的解决方案)
- mysql高级概念(MySQL 自定义变量的概念及特点)
- dockermysql配置详解(Docker 部署Mysql 服务和Redis 服务的方法)
- mysql数据库延时监控(Mysql sql慢查询监控脚本代码实例)
- mysql查看视图注释(详解MySQL的sql_mode查询与设置)
- mysql主从复制配置(Mysql实现主从配置和多主多从配置)
- 怎么知道sqlyog连接的哪个mysql(SQLyog连接MySQL8.0报2058错误的完美解决方法)
- mysql 查询都是0的值(MySQL按小时查询数据,没有的补0)
- mysql自定义安装教程5.7(MySQL系列-源码编译安装v5.7.34)
- mysql的视图和临时表区别(MySQL 内存表和临时表的用法详解)
- navicatformysql怎么激活(一文读懂navicat for mysql基础知识)
- mysql权限管理详解(Mysql 用户权限管理实现)
- mysql中null的用法(为什么mysql字段要使用NOT NULL)
- mysql完整整理(Mysql隔离性之Read View的用法说明)
- 元旦闲谭(元旦闲谭)
- 息烽 这个村 治垃圾 有招 人人争当卫生模范(息烽这个村治垃圾)
- 今天要吃什么(今天要吃什么菜)
- 三杨之一 南杨 杨溥 安贞履节,酿醴调羹,宰相之气(三杨之一南杨杨溥)
- 今天会下雨吗(今天会下雨吗小说)
- 追连续剧,品古今联4 明代三杨,联妙诗佳(追连续剧品古今联4)
热门推荐
- mysql sql优化方法(MySQL SQL优化教程之in和range查询)
- dedecms如何使用标签(dedecms模板标签如何做判断示例代码)
- vue代码统计(Vue实现计数器案例)
- js 图片编辑处理库(javascript input图片上传及预览,FileReader预览图片)
- C# Directory类的操作
- vueelementui左侧菜单(Vue Element前端应用开发之动态菜单和路由的关联处理)
- 用js编写tab栏切换(JavaScript实现简易tab栏切换内容栏)
- javascript弹出菜单(Javascript实现简易导航栏)
- MySQL中对varchar类型的排序
- selenium怎么做集群(基于linux配置selenium环境并实现运行)
排行榜
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9