数据库存储引擎是数据库底层软件组件,数据库管理系统使用数据引擎进行创建、查询、更新和删除数据操作。不同的存储引擎提供不同的存储机制、索引技巧、锁定水平等功能,使用不同的存储引擎还可以获得特定的功能。MySQL的核心就是存储引擎。
MySQL5.7支持的存储引擎有InnoDB、MyISAM、Memory、Merge、Archive、Federated、CSV、BLACKHOLE等。可以使用SHOW ENGINES语句查看系统所支持的引擎类型。
InnoDB是系统的默认引擎,支持可靠的事务处理。使用语句SET default_storage_engine=<存储引擎名>可以修改数据库临时的默认存储引擎。
数据类型(data_type)是指系统中所允许的数据的类型。数据库中的每个列都应该有适当的数据类型,用于限制或允许该列中存储的数据。
| 类型名 | 说明 |
|---|---|
| TINYINT | 很小的整数 |
| SMALLINT | 小的整数 |
| MEDIUMINT | 中等大小的整数 |
| INT(INTEGER) | 普通大小的整数 |
| BIGINT | 大整数 |
| 类型名 | 说明 |
|---|---|
| FLOAT(M,N) | 单精度浮点数 |
| DOUBLE(M,N) | 双精度浮点数 |
| DECIMAL(M,D) | 压缩的浮点数 |
| DEC | 压缩的浮点数 |
浮点数类型和定点类型都可以用(M,N)来表示,其中M称为精度,表示总共的位数;N称为标度,表示小数的位数。不论是定点还是浮点数,如果用户指定的精度超出精度范围,则会四舍五入进行处理。FLOAT和DOUBLE在不指定精度时,默认会按照实际的精度(由计算机硬度和操作系统决定),DECIMAL如果不指定精度,默认为(10,0)。浮点数相对于定点数的优点是在长度一定的情况下,浮点数能够表示更大的范围,缺点是会引起精度问题。
| 类型名 | 日期格式 | 取值范围 |
|---|---|---|
| YEAR | YYYY | 1901~2155 |
| TIME | HH:MM:SS | -838:59:59~838:59:59 |
| DATE | YYYY-MM-DD | 1000-01-01~9999-12-3 |
| DATETIME | YYYY-MM-DD HH:MM:SS | 1000-01-01 00:00:00~9999-12-31 23:59:59 |
| TIMESTAMP | YYYY-MM-DD HH:MM:SS | 1980-01-01 00:00:01 UTC~2040-01-19 03:14:07 UTC |
| 类型名 | 说明 |
|---|---|
| CHAR(M) | 固定长度非二进制字符串 |
| VARCHAR(M) | 变长非二进制字符串 |
| TINYTEXT | 非常小的非二进制字符串 |
| TEXT | 小的非二进制字符串 |
| MEDIUMTEXT | 中等大小的非二进制字符串 |
| LONGTEXT | 大的非二进制字符串 |
| ENUM | 枚举类型,只能有一个枚举字符串值 |
| SET | 一个设置,字符串对象可以有0个或者多个SET |
| 类型名 | 说明 |
|---|---|
| BIT(M) | 位字段类型 |
| BINARY(M) | 固定长度二进制字符串 |
| VARBINARY(M) | 可变长度二进制字符串 |
| TINYBLOB(M) | 非常小的BLOB |
| BLOB(M) | 小的BLOB |
| MEDIUMBLOB(M) | 中等大小的BLOB |
| LONGBLOB(M) | 非常大的BLOB |
原文:https://www.cnblogs.com/Cyzhouke/p/13733125.html