数据库表类型
1. 设置数据表的类型
1 CREATE TABLE 表名( 2 -- 省略一些代码 3 -- Mysql注释 4 -- 1. # 单行注释 5 -- 2. /*...*/ 多行注释 6 )ENGINE = MyISAM (or InnoDB) 7 8 -- 查看mysql所支持的引擎类型 (表类型) 9 SHOW ENGINES;
MySQL的数据表的类型:MyISAM , InnoDB , HEAP , BOB , CSV等...
常见的 MyISAM 与 InnoDB 类型:
名称 | MyISAM | InnoDB |
事务处理 | 不支持 | 支持 |
数据行锁定 | 不支持(锁表) | 支持(锁行) |
外键约束 | 不支持(只能进行单表操作) | 支持(可以进行多表操作) |
全文索引 | 支持 | 不支持 |
表空间大小 | 较小 | 较大,约2倍 |
经验(使用场合):
- 适用MyISAM:节约空间及相应速度
- 适用InnoDB:安全性,事务处理及多用户操作数据表
2. 数据表的存储位置
- MySQL数据表以文件方式存放在磁盘中
- 包括表文件,数据文件以及数据库的选项文件
- 位置:MySQL安装目录\data\下存放数据表。目录名对应数据库名,该目录下文件名对应数据表
数据库的默认安装地址:C:\Program Files\MariaDB 10.3
如上图,每个文件夹都相当于一个数据库表
- 注意
- InnoDB类型数据表只有一个*.frm文件,以及上一级目录的ibdata1文件
-
MyISAM类型数据表对应三个文件 :
-
* . frm -- 表结构定义文件
-
* . MYD -- 数据文件 ( data )
-
* . MYI -- 索引文件 ( index )
-
3. 设置数据表字符集
我们可为数据库,数据表,数据列设定不同的字符集,设定方法 :
-
创建时通过命令来设置 , 如 : CREATE TABLE 表名()CHARSET = utf8;
-
如无设定 , 则根据MySQL数据库配置文件 my.ini 中的参数设定