赞
踩
Innodb存储引擎是面向行的(row-oriented),也就是说数据的存放按行进行,每页存放的行记录是有硬性定义的,当页默认的大小是16K时,页中最多存放多少行的记录?
在数据库和编程语言中,tinyint、smallint、int(有时也称为integer)是三种不同大小的数据类型,用于存储整数值。它们之间的主要区别在于它们能够表示的数字范围不同,以及因此导致的存储空间需求不同。这些类型在MySQL、SQL Server、PostgreSQL等大多数关系型数据库管理系统中都存在,尽管具体的数值范围和存储需求可能略有不同,但基本概念是一致的。
tinyint
smallint
int 或 integer
Innodb存储引擎的数据按行进行存储。一页最多的存放的行16*1024/2-200行记录,即7992行。
硬性规定每个页都要预留200字节的空间来存储页面头部信息。
在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页。对于回滚信息、插入缓冲索引页、事务信息、二次写缓冲依然存放于共享表空间文件。
表空间由各个段组成,常见的段类型有:数据段、索引段、回滚段。
由于InnoDB表采用的是聚簇索引,聚簇索引决定了表中数据的物理存储顺序,所以数据段可以看成是B+树的叶子节点,索引段可以看成是B+树的非叶子节点。
一个段由多个区组成,区由多个连续页组成,每个区的大小为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空间。
页是InnoDB磁盘管理的最小单位,默认大小为16KB。常见的页类型有:
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)
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。