【转帖】Mysql一张表可以存储多少数据

mysql,一张,可以,存储,多少,数据 · 浏览次数 : 0

小编点评

1. MySQL一张表可以存储 16KB 的数据。 2. 由于 MySQL 的数据页大小是 16KB,所以一张表可以存储 16KB 的数据。 3. 索引只存储其所指向的数据节点的信息,所以 B+ 树的叶子节点只存储数据节点的指针,而其他节点只存储索引节点的地址。 4. 每个页可以存储 16 行数据。 5. 聚簇索引 B+树的三层可以存储 2000 万条数据。

正文

https://www.cnblogs.com/wenbochang/p/16723537.html

 

Mysql一张表可以存储多少数据

在操作系统中,我们知道为了跟磁盘交互,内存也是分页的,一页大小4KB。同样的在MySQL中为了提高吞吐率,数据也是分页的,不过MySQL的数据页大小是16KB。(确切的说是InnoDB数据页大小16KB)。详细学习可以参考官网 我们可以用如下命令查询到。
 
 
 
通过上面的知识了解到。B+树,只有聚簇索引的叶子节点才会存储数据。大致如下:
 
 
那么我们以上图为例:
 
1: 主键索引为ID,ID假设为bigInt, 则需要8byte的字节存储,加上指向子节点的指针6byte(固定)。
总共是8 + 6 = 14byte
 
2:一个页为16kb = 16 * 1000 byte。那么16kb / 14byte ≈ 1170个数据。也就是一页可以存储1170个数据节点
 
3:那么根节点可以存储1170个节点。因为每个节点都可以向下指向。
也就是第二层,可以存储 1170 * 1170 = 1 368 900节点。
 
4:第一层是一个页,第二层为1170个页。第三层为 1170 * 1170个页。每个页16kb
因为最后一层是存储数据的,假设每行数据为1kb。那么每个页可以存储16行数据。
也就是第三行可以存储 1170 * 1170 * 16  = 21 902 400(两千万条数据)
 
 
那么也就是聚簇索引B+树三层就可以存储两千万条的数据,大致如下图:
 
 

与【转帖】Mysql一张表可以存储多少数据相似的内容:

【转帖】Mysql一张表可以存储多少数据

https://www.cnblogs.com/wenbochang/p/16723537.html Mysql一张表可以存储多少数据 在操作系统中,我们知道为了跟磁盘交互,内存也是分页的,一页大小4KB。同样的在MySQL中为了提高吞吐率,数据也是分页的,不过MySQL的数据页大小是16KB。(确

[转帖]MySQL总长字符类型优化

https://blog.csdn.net/weixin_32254411/article/details/113535526 阿里规范中有一条 varchar是可变长字符串,不预先分配存储空间,长度不要超过5000,如果存储长度 大于此值,定义字段类型为 text,独立出来一张表,用主键来对应,避

[转帖]阿里规范 - 五、MySQL 数据库 - (一)建表规约 - 8 - 【强制】varchar 是可变长字符串,不预先分配存储空间,长度不要超过 5000,如果存储长 度大于此值,定义字段类型为 text,独立出来一张表,用主键来对应,避免影响其它字段索 引效率。

字段类型为 text,独立出来一张表,用主键来对应,避免影响其它字段索 引效率。 1、因为mysql 是行存储模式,所以会把整行读取出来。text 储存了大量的数据。读取时,占了大量的io。所以会十分的慢。 2、每行的数据过大 行溢出 InnoDB 会将一些大对象数据存放在数据页之外的 BLOB 页

【转帖】《MySQL高级篇》四、索引的存储结构

1. 为什么使用索引 假如给数据使用 二叉树 这样的数据结构进行存储,如下图所示 2、索引及其优缺点 2.1 索引概述 2.2 优点 类似大学图书馆建书目索引,提高数据检索的效率,降低 数据库的 IO 成本 这也是创建索引的主要的原因。通过创建唯一索引,可以保证数据库表中每一行 数据的唯一性 (唯一

【转帖】MySQL索引

数据表如何用索引快速查找 索引是 排好序的快速查找的数据结构 索引存储在文件系统中 索引的文件存储形式与存储引擎有关 索引数据结构:可以是二叉树、红黑树、Hash表、B-Tree、B+Tree 1、二叉树 使用索引的如下图:(如果是使用二叉树结构)每一个节点都存放数据行的磁盘地址【快速定位到数据】

[转帖]MYSQL--表分区、查看分区

https://www.cnblogs.com/pejsidney/p/10074980.html 一、 mysql分区简介 数据库分区 数据库分区是一种物理数据库设计技术。虽然分区技术可以实现很多效果,但其主要目的是为了在特定的SQL操作中减少数据读写的总量以缩减sql语句的响应时间,同时对于应用

[转帖]MySQL索引优化分析之性能分析(Explain执行计划)

一、MySQL常见瓶颈 二、性能分析工具Explain(执行计划 ) 使用EXPLAIN关键字可以模拟优化器执行SQL查询语句,从而知道MySQL是如何处理你的SQL语句的。分析你的查询语句或是表结构的性能瓶颈。查看官网说明: 使用: Explain + SQL语句 作用: 三、各字段解释 3.1、

【转帖】查看mysql库大小,表大小,索引大小

https://www.cnblogs.com/lukcyjane/p/3849354.html 说明: 通过MySQL的 information_schema 数据库,可查询数据库中每个表占用的空间、表记录的行数;该库中有一个 TABLES 表,这个表主要字段分别是: TABLE_SCHEMA :

[转帖]最全MySQL锁讲解:页锁、共享锁、行锁、表锁、悲观锁、乐观锁

我们在操作数据库的时候,可能会由于并发问题而引起的数据的不一致性(数据冲突),如何保证数据并发访问的一致性、有效性,是所有数据库必须解决的一个问题,锁的冲突也是影响数据库并发访问性能的一个重要因素,从这一角度来说,锁对于数据库而言就显得尤为重要。 今天就分享下MySQL相关的最全锁,希望你学习后能更

[转帖]LEFT JOIN(左连接)、RIGHT JOIN(右连接)、FULL JOIN(全连接)、INNER JOIN(内连接)、CROSS JOIN(笛卡尔积)详解

标签: Mysql left outer join 和left join表达的是同一个意思,left join可看作是left outer join的简写; 同理right outer join 、full outer join也是一样的。 1 2 (1)left join(左连接)在两张表进行连接