基础概念
- 在文件系统中,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: userEngine: MyISAMVersion: 10Row_format: DynamicRows: 89Avg_row_length: 125Data_length: 11188Max_data_length: 281474976710655Index_length: 4096Data_free: 0Auto_increment: NULLCreate_time: 2019-11-11 11:00:25Update_time: 2021-07-09 10:13:26Check_time: NULLCollation: utf8_binChecksum: NULLCreate_options:Comment: Users and global privileges1 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”字样。 |
