MySQL Innodb存储引擎中,当页默认的大小是16K时,页中最多存放多少行的记录?

news2024/9/27 7:25:40

1、题目引入

Innodb存储引擎是面向行的(row-oriented),也就是说数据的存放按行进行,每页存放的行记录是有硬性定义的,当页默认的大小是16K时,页中最多存放多少行的记录?

  • A、1600 行
  • B、8192 行
  • C、16383 行
  • D、7992 行 ✔

2、解答

在数据库和编程语言中,tinyint、smallint、int(有时也称为integer)是三种不同大小的数据类型,用于存储整数值。它们之间的主要区别在于它们能够表示的数字范围不同,以及因此导致的存储空间需求不同。这些类型在MySQL、SQL Server、PostgreSQL等大多数关系型数据库管理系统中都存在,尽管具体的数值范围和存储需求可能略有不同,但基本概念是一致的。

  • tinyint

    • 数值范围:通常是有符号的,范围从-128到127(如果定义为无符号,则是从0到255)。
    • 存储空间:通常占用1个字节(8位)的存储空间。
    • 用途:适用于存储非常小的整数值,如布尔值(尽管在SQL中通常使用BIT或BOOLEAN类型表示布尔值)、状态码等。
  • smallint

    • 数值范围:通常是有符号的,范围从-32,768到32,767(如果定义为无符号,则是从0到65,535)。
    • 存储空间:通常占用2个字节(16位)的存储空间。
    • 用途:适用于存储较小的整数值,如分类ID、年龄等。
  • int 或 integer

    • 数值范围:通常是有符号的,范围从-2,147,483,648到2,147,483,647(如果定义为无符号,则是从0到4,294,967,295)。
    • 存储空间:通常占用4个字节(32位)的存储空间。
    • 用途:适用于存储大多数整数值,如用户ID、订单数量等。

Innodb存储引擎的数据按行进行存储。一页最多的存放的行16*1024/2-200行记录,即7992行。

硬性规定每个页都要预留200字节的空间来存储页面头部信息。
在这里插入图片描述

  • Trx_id(隐藏字段):每次对某行记录进行事务操作时,都会把对应的事务ID赋值到这个字段中
  • Roll_point(隐藏字段):每次对某行记录进行修改时,都会把旧的版本写入到undolog中,然后这个隐藏列就相当于一个指针,可以通过它来找到修改前的信息

3、知识点提示

3.1、表空间(tablespace)

在MySQL中,所有InnoDB存储引擎表中的数据都存储在表空间中。如果用户启用了innodb_file_per_table,那么每张表内的数据可以存储在一个单独的表空间文件(称为独立表空间文件)中,如果没有启用,那么数据都会存储在共享表空间文件中(默认情况下的ibdata0和ibdata1文件)。
在MySQL 5.7中,innodb_file_per_table默认是启用的

mysql> show variables like 'innodb_file_%';
+--------------------------+-----------+
| Variable_name            | Value     |
+--------------------------+-----------+

| innodb_file_per_table    | ON        |
+--------------------------+-----------+
4 rows in set (0.00 sec)

独立表空间文件存放的只是这张表的数据、索引和插入缓冲Bitmap页。对于回滚信息、插入缓冲索引页、事务信息、二次写缓冲依然存放于共享表空间文件。

3.2、段(segment)

表空间由各个段组成,常见的段类型有:数据段、索引段、回滚段。
由于InnoDB表采用的是聚簇索引,聚簇索引决定了表中数据的物理存储顺序,所以数据段可以看成是B+树的叶子节点,索引段可以看成是B+树的非叶子节点。

3.3、区(extend)

一个段由多个区组成,区由多个连续页组成,每个区的大小为1MB,默认情况下,每个页的大小为16KB

mysql> show variables like 'innodb_page_size';
+------------------+-------+
| Variable_name    | Value |
+------------------+-------+
| innodb_page_size | 16384 |
+------------------+-------+

即一个区中一共有64个连续页。用户可通过innodb_page_size参数设置每个页的大小。
默认情况下,用户在创建一张InnoDB表后,该表对应的独立表空间文件为96KB,在每个段开始时会先用32个碎片页来存放数据,使用完这32个页后才是64个连续页的申请。这么做是考虑到有些表的数据相对来说是比较少的,可以节省磁盘空间,因为申请64个页(即1个区)需要1MB空间。

3.4、页(page)

页是InnoDB磁盘管理的最小单位,默认大小为16KB。常见的页类型有:

  • 数据页(B-tree Node)
  • undo页(undo Log Page)
  • 系统页(System Page)
  • 事务数据页(Transaction system Page)
  • 插入缓冲位图页(Insert Buffer Bitmap)
  • 插入缓冲空闲列表页(Insert Buffer Free List)
  • 未压缩的二进制大对象页(Uncompressed BLOB Page)
  • 压缩的二进制大对象页(compressed BLOB Page)

3.5、行(Row)

InnoDB存储引擎将数据按行进行存放,每个页最多存放7992行记录(16KB除以2-200),InnoDB存储引擎提供了Compact、Redundant、Compressed、Dynamic四种格式来存放行记录数据,用户可通过命令show table status like 'table_name’来查看

(root@localhost)[superdb]> select * from dept;
+--------+------------+----------+
| deptno | dname      | loc      |
+--------+------------+----------+
|     10 | ACCOUNTING | NEW YORK |
|     20 | RESEARCH   | DALLAS   |
|     30 | SALES      | CHICAGO  |
|     40 | OPERATIONS | BOSTON   |
+--------+------------+----------+
4 rows in set (0.01 sec)

(root@localhost)[superdb]> show table status like 'dept';

+------+--------+---------+------------+------+----------------+-------------+-----------------+--------------+-----------+----------------+---------------------+-------------+------------+--------------------+----------+----------------+-----------------+
| Name | Engine | Version | Row_format | Rows | Avg_row_length | Data_length | Max_data_length | Index_length | Data_free | Auto_increment | Create_time         | Update_time | Check_time | Collation          | Checksum | Create_options | Comment         |
+------+--------+---------+------------+------+----------------+-------------+-----------------+--------------+-----------+----------------+---------------------+-------------+------------+--------------------+----------+----------------+-----------------+
| dept | InnoDB |      10 | Dynamic    |    4 |           4096 |       16384 |               0 |            0 |         0 |             41 | 2024-06-19 11:34:47 | NULL        | NULL       | utf8mb4_0900_ai_ci |     NULL |                | 员工部门表      |
+------+--------+---------+------------+------+----------------+-------------+-----------------+--------------+-----------+----------------+---------------------+-------------+------------+--------------------+----------+----------------+-----------------+
1 row in set (0.19 sec)

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1909716.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

occ geo

随笔 - 12 文章 - 18 评论 - 117 阅读 - 13万 opencascade造型引擎功能介绍 现今的CAD 系统大多通常都基于CAD 系统提供的二次开发包,用户根据要求定制符合自己要求的功能。AutoCAD就提供了AutoLISP、ADS 等都是比较通用的开发工具包。UG 也提供了多种二次开发…

温州海经区管委会主任、乐清市委书记徐建兵带队莅临麒麟信安调研

7月8日上午,温州海经区管委会主任、乐清市委书记徐建兵,乐清市委常委、副市长叶序锋,乐清市委办主任郑志坚一行莅临麒麟信安调研,乐清市投资促进服务中心及湖南省浙江总商会相关人员陪同参加。麒麟信安董事长杨涛、总裁刘文清热情…

grafana数据展示

目录 一、安装步骤 二、如何添加喜欢的界面 三、自动添加注册客户端主机 一、安装步骤 启动成功后 可以查看端口3000是否启动 如果启动了就在浏览器输入IP地址:3000 账号密码默认是admin 然后点击 log in 第一次会让你修改密码 根据自定义密码然后就能登录到界面…

机器学习笔记:初始化0的问题

1 前言 假设我们有这样的两个模型: 第一个是逻辑回归 第二个是神经网络 他们的损失函数都是交叉熵 sigmoid函数的导数: 他们能不能用0初始化呢? 2 逻辑回归 2.1 求偏导 2.1.1 结论 2.1.2 L对a的偏导 2.1.3 对w1,w2求偏导 w2同…

k8s record 20240708

一、PaaS 云平台 web界面 资源利用查看 Rancher 5台 CPU 4核 Mem 4g 100g的机器 映射的目录是指docker重启后,数据还在 Rancher可以创建集群也可以托管已有集群 先docker 部署 Rancher,然后通过 Rancher 部署 k8s 想使用 kubectl 还要yum install 安…

中国AI大模型论文数量全球第一,清华力压麻省理工、斯坦福

论文是研究新技术、开发新产品获取“图纸”的重要途径之一,OpenAI的研究人员正是借鉴了Transformer的论文(被引用超过9万次),才开发出了对全球各行业影响巨大的产品ChatGPT。 而论文的数量、通过率和被引用次数是衡量一个国家科技…

电脑文件夹怎么设置密码?让你的文件更安全!

在日常使用电脑的过程中,我们常常会有一些需要保护的个人文件或资料。为了防止这些文件被他人未经授权访问,对重要文件夹设置密码是一种有效的保护措施,可是电脑文件夹怎么设置密码呢?本文将介绍2种简单有效的方法帮助您为电脑文件…

红酒与运动后的恢复:健康的双重助力

在繁忙的都市生活中,运动已成为许多人追求健康与活力的方式。当汗水洒落,肌肉得到锻炼,一场酣畅淋漓的运动后,身心仿佛得到了洗礼。而在这份宁静与满足之余,你是否想过,一杯优雅的红酒也能为你的运动后恢复…

以SGET协会OSM标准首创有662引脚的OSM模组——凌华智能引领嵌入式运算市场

在可焊接的45 x 45mm尺寸上提升功率 开启嵌入式运算发展的新时代 摘要: 1.开放式标准模块(OSM™),最大尺寸仅45 x 45mm,采用零开销的模块化系统简化生产,并提供662个引脚以增强小型化和物联网应用。 2.凌华智能提供基于NXP i.M…

二叉树中的最大路径和(Java版)

二叉树中的 路径 被定义为一条节点序列,序列中每对相邻节点之间都存在一条边。同一个节点在一条路径序列中 至多出现一次 。该路径 至少包含一个 节点,且不一定经过根节点。 路径和 是路径中各节点值的总和。 给你一个二叉树的根节点 root &#xff0c…

AI自动生成PPT哪个软件好?高效制作PPT就用这4个

学生时期做各种小组作业需要做PPT,毕业后开始上班每周大大小小的各种会议和汇报,也少不了PPT的折磨。 倘若你也刚好有这种烦恼,那么不妨试试下面我给大家安利的这4款AI自动生成PPT免费软件~保准你用上以后可不再为PPT制作而发愁!…

面向过程编程详解

目录 前言1. 面向过程编程的定义2. 面向过程编程的特点2.1 过程和函数2.2 顺序执行2.3 全局变量2.4 控制结构 3. 面向过程编程的应用场景3.1 系统级编程3.2 科学计算3.3 小型项目 4. 面向过程编程的优缺点4.1 优点4.2 缺点 5. 代表性的编程语言5.1 C语言5.2 Pascal5.3 Fortran …

【LLM大模型】开发基于云的RAG应用,使用开源 LLM

检索增强生成 (RAG)通常用于开发定制的 AI 应用程序,包括 聊天机器人、推荐系统和其他个性化工具。该系统利用向量数据库和 大型语言模型 (LLM)的优势来提供高质量的结果。 为任何 RAG 模型选择合适的 LLM 非常重要,需要考虑成本、隐私问题和可扩展性等…

仿写SpringMVC

1.创建简单的注解 1.1 Controller package com.heaboy.annotation;import java.lang.annotation.*;Documented Retention(RetentionPolicy.RUNTIME) Target(ElementType.TYPE) public interface Controller { } 1.2 RequestMapping package com.heaboy.annotation;import …

喜讯|华院钢铁行业大模型入选“2024全国企业新质生产力赋能典型案例”

7月2日,由中国科学院主管、科学出版社主办的商业周刊《互联网周刊》(CIW)联合德本咨询(DBC)、中国社会科学院信息化研究中心(CIS)发布了“2024全国企业新质生产力赋能典型案例”。华院计算技术&…

基于FPGA的千兆以太网设计(1)----大白话解释什么是以太网

1、什么是以太网? 还记得初学以太网的时候,我就被一大堆专业名词给整懵了:什么以太网,互联网,MAC,IP,局域网,万维网,网络分层模型等等等等。慢着!我学的不是以太网吗?怎么出来这么一大堆东西? 啊!以太网究竟是什么?别急,我接下来就尽量用通俗的大白话来给你解释…

香港优才计划多少分获批成功率高?一文看懂各分数段获批情况!

有留意香港优才计划的朋友,应该都了解过,申请优才计划采用打分制,得分多少与最终获批有密不可分的关系。但有一点要提前清楚,申请优才不是得分越高就一定能获批,也不是得分低就一定没希望。 香港优才计划能否获批成功…

将直流电转换为交流电:逆变器的基本原理

什么是逆变器? 大多数电源设计都包括一个称为整流器的部分,该整流器将输入的交流波转换为不稳定的直流电压。但是,我们不能总是依赖来自建筑物主电源的交流输入到我们的系统中。 逆变器是一种将直流电 (DC) 转换为交…

前端javascript中的排序算法之冒泡排序

冒泡排序(Bubble Sort)基本思想: 经过多次迭代,通过相邻元素之间的比较与交换,使值较小的元素逐步从后面移到前面,值较大的元素从前面移到后面。 大数据往上冒泡,小数据往下沉,也就是…

Docker-安装MongoDB、RabbitMQ、ActiveMQ、Portainer(保姆篇图示详解)

文章目录 MongoDB 安装RabbitMQ 安装ActiveMQ 安装Portainer 安装 更多相关内容可查看 MongoDB 安装 1.拉取镜像(默认为最新版本,也可指定版本) docker pull mongo:版本号2.根据镜像 运行容器实例 (暴露端口 数据挂载 用户密码设…