基础概念
- 在文件系统中,MySQL 将每个数据库(也成为 schema)保存为数据目录下的一个子目录。
- 创建表时,MySQL 会在数据库子目录下创建一个同名的
.frm
文件保存表定义。 - MySQL 使用文件系统的目录和文件拉保存数据库和表的定义,意味着表的大小写敏感依平台相关。
- 如:Windows 中大小写不敏感;而类 Unix 中则是敏感的。
- 表的的定义是在 MySQL 服务层统一处理。
表信息
可以使用 SHOW TABLE STATUS
命令显示表的信息。
MySQL 5.0 以后,也可通过查询
INFORMATION_SCHEMA
中查看对应表。
示例:查看 u%
表的信息
mysql> use mysql;
mysql> show table status like 'us%' \G;
*************************** 1. row ***************************
Name: user
Engine: MyISAM
Version: 10
Row_format: Dynamic
Rows: 89
Avg_row_length: 125
Data_length: 11188
Max_data_length: 281474976710655
Index_length: 4096
Data_free: 0
Auto_increment: NULL
Create_time: 2019-11-11 11:00:25
Update_time: 2021-07-09 10:13:26
Check_time: NULL
Collation: utf8_bin
Checksum: NULL
Create_options:
Comment: Users and global privileges
1 row in set (0.00 sec)
输出的结果含义:
字段 | 含义 |
---|---|
Name | 表名 |
Engine | 存储引擎;旧版本名字为 Type |
Version | 版本 |
Row_format | 行的格式。 - 对于 MyISAM 表,可选值为 Dynamic、Fixed 或 Compressed。 - Dynamic 的行长度可变,一般包含可变长度的字段,如 Varchar 或 Blob。 - Fixed 的行则是固定,只包含固定长度的列,如 Char 或 INTERGER。 - Compressed 的行则只在压缩表中存在。 |
Rows | 表中行数;对于 MyISAM 和其他存储引擎,该值是精确的;但对于 InnoDB 该值是估计值。 |
Avg_row_length | 平均每行包含的字节数 |
Data_length | 表的数据大小(单位:字节) |
Max_data_length | 表数据的最大容量,与存储引擎有关 |
Index_length | 索引的大小(单位:字节) |
Data_free | 对于 MyISAM 表,表示已分配但未使用的空间。包括之前删除的行,以及后续可以被 INSERT 利用的空间 |
Auto_increment | 下一个 AUTO_INCREMENT 的值 |
Create_time | 表的创建时间 |
Update_time | 表数据的最后修改时间 |
Check_time | 使用 CHECK TABLE 命令或者 myisamchk 工具最后检查的时间 |
Collation | 表的默认字符集和字符列排序规则 |
Checksum | 如果启用,保存的是整个表的实时校验和 |
Create_options | 创建表时指定的其他选项 |
Comment | 包含了额外信息,对于 MyISAM 表,保存的是注释。 如果是 InnoDB 表,保存的是剩余空间信息。如果是一个视图,则包含“ VIEW ”字样。 |