Truth & Free

The truth shall make you free.

   :: 首页  :: 新随笔  ::  ::  :: 管理

4.1存储引擎

   1. 查看MySQL DBMS所支持的存储引擎

SHOW ENGINES;

SHOW VARIABLES LIKE 'have%';

Yes表示支持,No表示不支持,DISABLED表示支持但是未开启。

  2. 查询默认存储引擎

SHOW VARIABLES LIKE 'storage_engine%';

  3. 修改默认存储引擎

打开my.ini配置文件,修改[mysqld]中的default-storage-engine参数,重启MySQL服务。

 

4.2 数据类型

  4.2.1 整数类型

支持标准SQL中的所有整数类型(SMALLINT和INT/INTEGER),扩展增加了TINYINT、MEDIUMINT和BIGINT。

整数类型 字节 最小值 最大值
TINYINT 1

 -128

 0

 127

 255

SMALLINT 2

 -2^15

 0

 2^15-1

 2^16-1

MEDIUMINT 3

 -2^23

 0

 2^23-1

 2^24-1

INT/INTEGER 4

 -2^31

 0

 2^31-1

 2^32-1

BIGINT 8

 -2^63

 0

 2^63-1

 2^64-1

TINYINT类型占一个字节,最大值二进制:01111111,即127;最小值二进制:10000000,即-128.

  4.2.2 浮点数类型、定点数类型和位类型

1. 浮点型类型FLOAT、DOUBLE

浮点型类型 字节 最小值 最大值
FLOAT 4  ±1.75494351E-38  ±3.402823466E+38
DOUBLE 8  ±1.225073858072014E-308  ±1.7976931348623157E+308

当需要精确到小数点后10位以上,需要选择DOUBLE类型。

2. 定点数类型DEC(M,D)

定点数类型 字节 最小值 最大值
DEC(M,D)/DECIMAL(M,D) M+2 与DOUBLE相同 与DOUBLE相同

FLOAT、DOUBLE数据类型存储数据时存储的是近似值,而DECIMAL存储的是字符串,因此提供了更高的精度。

3. 位类型BIT(M)

位类型 字节 最小值 最大值
BIT(M) 1~8 BIT(0) BIT(64)

位类型的字节数为M,M的取值范围为1~8.

  4.2.3 日期和时间类型

日期和时间类型 字节 最小值 最大值
DATE 4 1000-01-01 9999-12-31
DATETIME 8 1000-01-01 00:00:00 9999-12-31 23:59:59
TIMESTAMP 4 19700101080001 2038年的某个时刻
TIME 3 -835:59:59 838:59:59
YEAR 1 1901 2155

如果需要经常插入或者更新日期为当前系统时间,一般会使用TIMESTAMP类型;

如果要表示年份,一般会使用占用空间更少的YEAR类型。

  4.2.4 字符串类型

1. CHAR系列

CHAR系列字符串类型 字节 描述
CHAR(M) M M为0~255之间的整数
VARCHAR(M) M M为0~65535之间的整数

如果要存储少量字符串,则可以选择CHAR和VARCHAR类型。如果存储字符串长度经常发生变化,则可以选择VARCHAR类型,否则选择CHAR类型。

2. TEXT系列

TEXT系列字符串类型 字节 描述
TINYTEXT 0~255 值的长度为2个字节
TEXT 0~65 535 值的长度为2个字节
MEDIUMTEXT 0~16 777 215 值的长度为4个字节
LONGTEXT 0~4 294 967 295 值的长度为8个字节

如果需要存储大量字符串(存储文字内容的纯文本),则可以选择TEXT系列字符串类型。

3. BINARY系列

BINARY系列字符串类型 字节 描述
BINARY(M) M 允许长度为0~M
VARBINARY(M) M 允许长度为0~M

如果需要存储少量二进制数据,可以选择BINARY和VARBINARY类型。如果存储二进制数据长度的发生变化,则可以选择VARBINARY类型,否则选择BINARY类型。

前者可以存储二进制数据(例如图片、音乐或视频文件),后者只能存储字符数据。

4. BLOB系列

BLOB系列字符串类型 字节
TINYBLOB 0~255
BLOB 0~2^16-1
MEDIUMBLOB 0~2^24-1
LONGBLOB 0~2^32-1

如果需要存储大量二进制数据(电影等视频文件),则可以选择BLOB系列字符串类型。

posted on 2015-06-10 13:40  andyzeng24  阅读(260)  评论(0编辑  收藏  举报