频道栏目
首页 > 资讯 > MySQL > 正文

mysql存储引擎和数据类型

17-02-04        来源:[db:作者]  
收藏   我要投稿
mysql存储引擎和数据类型,存储引擎指定了表的类型,即如何存储和索引数据,是否支持事务等,同时存储引擎也决定了表在计算机中的存储方式。
用户在选择存储引擎之前,首先需要确定数据库管理系统支持哪些存储引擎。
查看当前数据库管理系统所支持的存储引擎:
show engines \G

Engine:表示存储引擎名称。
Supoort:表示是否支持该存储引擎(值DEFAULT表示默认支持的引擎)。
Comment:表示存储引擎的评论。
Transactions:表示是否支持事务。
XA:表示存储引擎所支持的分布式是否符合XA规范。
Savepoints:表示存储引擎是否支持事务处理中的保存点。
查看当前数据库管理系统所支持的存储引擎(第二种)
show variables like 'hava%';

Variable_name:表示存储引擎名称;
Value:表示是否支持存储引擎;
DISABLED:表示支持但是还没开启;
查看默认存储引擎
show variables like 'storage_engine%';

设置关键字like为'storage_engine%':表示查询默认存储引擎;

----------------------------------------------------------------------------------------------------------------

修改默认引擎
1.向导方式
2.手工修改配置方式

在my.ini配置修改如下内容:
.......................
...................
default-storage-engine=[默认引擎名称]
........
把default-storage-engine=[默认引擎名称]修改为default-storage-engine=[修改的引擎名称]

注意:要想生效,必须重启mysql服务(net start mysql).

-----------------------------------------------------------------------------------------------------------------

选择存储引擎
常用的存储引擎特性

MyISAM:不支持事务,不支持外键,所以访问速度比较快。适合:对事务完整性没有要求并以访问为主的应用。
InnoDB:在事务上具有优势,支持具有提交’回滚和崩溃恢复能力的事务安。占用更多的磁盘空间,因此需要进行频繁的更新,删除操作。
对事务对的完整性要求比较高,需要实现并发控制。

MEMORY:使用内存存储数据,因此数据访问速度快,但是安全没有保障。

-----------------------------------------------------------------------------------------------------------------

数据类型
整数类型的所有类型:

TINYINT:字节1(相当于byte,8位),占用字节数最小,取值范围最小;
SMALLINT:字节2(相当于short,16位).
MEDIUMINT:字节3。
INT和INTEGER:4(相当于int ,32位)。

BIGINT:字节8(相当于long,64位).占用字节最大,取值范围最大。

了解字节数可以算出该类型的取值范围,
整数有符号数(正负数),左边为符号位(0位整数,1位负数).
例如TINYINT的有符号:
正整数最大值二进制:
0|1|1|1|1|1|1|1
转换成十进制:2^7-1=127
负整数最小值二进制:
1|0|0|0|0|0|0|0

转换成十进制:-2^7-1=-128

例如TINYINT的无符号:

最小值无符号0,最大值无符号255

----------------------------------------------------------------------------------------------------------------

浮点数类型,定点数类型和位类型
浮点数类型:

FLOAT:字节4(32)
DOUBLE:字节8(64)
定点数类型

DEC(M,D)和DECIMAL(M,D):字节M+2,最小值和最大值与DOUBLE相同。

要求小数数据精确度非常高时,可以选择DEC和DECIMAL,它们比double类型还要高。

--------------------------------------------------------------------------------------------------------------

位类型

BIT:z字节1~8,最小值BIT(1),最大值BIT(64).

-----------------------------------------------------------------------------------------------------------------

日期和时间类型
DATE:字节4,
DATETIME:字节8
TIMESTAMP:字节4
TIME:字节3

YEAR:字节1

使用场合:
表示年月日:DATE;
表示年月日时分秒:DATETIME
表示需要经常插入或者更新日期为当前系统时间:TIMESTAMP
表示时分秒:TIME;

表示年份:YEAR,占用空间比DATE少

-----------------------------------------------------------------------------------------------------------------

字符串类型
CHAR系列字符串类型

CHAR(M):字节M,范围0~255

VARCHAR(M):字节M,范围0~65535

使用注意:

如果存储字符串长度经常变化,可以选择varchar;

-----------------------------------------------------------------------------------------------------------------

TEXT系列字符串类型
TINYTEXT:字节0~255,值得长度+2个字节
TEXT:字节0~65535,值得长度+2个字节
MEDIUMTEXT:字节0~167772150,值得长度+3个字节

LONGTEXT:字节0~4294967295,值得长度+4个字节

使用情况

如果存储大量字符串,选择TEXT系类类型。

----------------------------------------------------------------------------------------------------------------

BINARY系列字符串类型
BINRY:字节M,长度0~M

VARBINARY:字节M,长度0~M

SHI与CHAR系列相似,区别是CHAR系列只能存储数据,BINARY系列字符串类型还可以存储二进制数据(例如图片,音乐或者视频文件).

BINRY和VARBINARY的使用区别:

存储字符串经常变化可以选择VARBINARY。它们可以存储少量的数据。

-----------------------------------------------------------------------------------------------------------------

BLOB系列字符串类型
TINYBLOB:字节0~255
BLOB:字节0~2^16
MEDIUMBLOB:字节0~2^24

LONGBLOB:字节0~2^32

存储大量二进制数据(存储电影等视频文件)选择BLOB系列。
相关TAG标签
上一篇:Jenkins+Gitlab+Sonar代码检查平台搭建-java_maven项目
下一篇:Windows10系统插入U盘显示两个盘符的解决办法
相关文章
图文推荐

关于我们 | 联系我们 | 广告服务 | 投资合作 | 版权申明 | 在线帮助 | 网站地图 | 作品发布 | Vip技术培训 | 举报中心

版权所有: 红黑联盟--致力于做实用的IT技术学习网站