如何在mysql数据库中存储图像数据类型_MySQL数据库中存储引擎和数据类型

本文介绍了MySQL数据库的存储引擎,包括查询存储引擎的方法、默认存储引擎的查看与修改,以及常见存储引擎如MyISAM、InnoDB和MEMORY的特点。同时,文章详细讲解了MySQL的数据类型,包括整数、浮点数、定点数、位类型、日期和时间、字符串等,并给出了不同类型的选择建议。
摘要由CSDN通过智能技术生成

认识存储引擎

存储引擎是MySQL数据库管理系统的一个重要特征,在具体开发时,为了提高MySQL数据库管理系统的使用效率和灵活性,可以根据

实际需求来选择存储引擎。因为存储引擎指定了表的类型,即如何存储和索引数据、是否支持事务等,同时存储引擎也决定了表在计算

机中的存储方式。

用户在选择存储引擎之前,首先需要确定数据库管理系统支持哪些存储引擎。

SQL语句:show engines;

e98c1b04be131640305d89d2626f1072.png

为了查看更方便,我们通常这么写:show engines \G

d81d4b8d5da11b6ce818802c08d94db8.png

be011587aa7d0680a5b50d90bb4d5379.png

54896d7988cf17e73ef79ea0d2031c60.png

bb23d96a6b3897610095c1617084e6ca.png

*select version();用来查看MySQL数据库管理系统的版本信息

执行结果显示:MySQL 5.6支持9种存储引擎,分别为:FEDERATED、MRG_MYISAM、MyISAM、BLACKHOLE、CSV、MEMORY、ARCHIVE、InnoDB、PERFORMANCE_SCHEMA。

其中Engine参数表示存储引擎名称;Support参数表示MySQL数据库管理系统是否支持该存储引擎,值YES表示支持,NO表示不支持,值DEFAULT表示该存储引擎是DBMS默认支持的存储引擎;

Comment参数表示关于存储引擎的评论;Transactions参数表示存储引擎是否支持事务,YES表示支持,NO表示不支持;XA参数表示存储引擎所支持的分布式是否符合XA规范,YES表示支持,

NO表示不支持;Savepoints参数表示存储引擎是否支持事务处理中的保存点,YES表示支持,NO表示不支持

在执行SQL语句中,可以用";"、"\g"、"\G"符号表示语句结束。其中前两个符号的作用是一样的,\G除了表示语句结束外,还可以使得结果显示更美观

MySQL数据库管理系统中,除了可以使用show engines查看所支持的存储引擎外,还可以通过show variables来查看所支持的存储引擎

SQL:show variables like 'have%';

f0a0b67ace997ad7184c21e632eb123f.png

Variable_name参数表示存储引擎名字;Value参数表示MySQL数据库管理系统是否支持该存储引擎,YES表示支持,NO表示不支持,DISABLED表示支持但是没开启

操作默认存储引擎

通过刚才的查看,我们知道MySQL 5.6数据库管理系统默认的存储引擎为InnoDB。在数据库管理系统中,可以修改默认存储引擎吗?下面我们来了解默认存储引擎的操作

1、查询默认存储引擎

我们要操作默认存储引擎,首先要查看默认存储引擎是什么。通过执行SQL语句show variables来查看默认存储引擎

SQL:show variables like 'storage_engine%';      #like关键字为"storage_engine%"表示查询默认存储引擎

7da051f8d80465df8ba64060c35520b8.png

执行结果显示,默认存储引擎为InnoDB

2、修改默认存储引擎

在MySQL数据库管理系统中,如果需要修改默认存储引擎,可以通过两种方式来实现:向导方式、手动修改配置文件方式

通过向导方式修改默认存储引擎,需要进入图形化实例配置向导中选择默认存储引擎,这种方式很繁琐。建议采用手动修改配置文件的方式

通过手动修改配置文件方式修改默认存储引擎时,需要修改MySQL数据库管理系统的配置文件my.ini,步骤如下:

a、修改[mysqld]组中的default-storage-engine参数

b、重启MySQL服务

3、选择存储引擎

在具体使用MySQL数据库管理系统时,选择一个合适的存储引擎是一个非常复杂的问题。因为每种存储引擎都有自己的特性、优势和应用场合,因此不能随便选择存储引擎。

下面介绍几种常用的存储引擎,特性见下表

5e45da4ac0e2f470ff6ae9d58f550c49.png

MyISAM存储引擎:由于该引擎不支持事务、也不支持外键,所以访问速度比较快。因此对事务完整性没有要求并以访问为主的应用适合使用此存储引擎

InnoDB存储引擎:由于该存储引擎在事务上具有优势,即支持具有提交、回滚和崩溃恢复能力的事务安装,所以比MyISAM存储引擎占用更多的磁盘空间。

因此需要进行频繁的更新、删除操作,同时还对事务完整性要求比较高,需要实现并发控制的应用适合使用此存储引擎

MEMORY存储引擎:该存储引擎使用内存来存储数据,因此该存储引擎的数据访问速度快,但是安全上没有保障。如果应用中涉及数据比较小,需要进行

快速访问,适合此存储引擎

数据类型

在MySQL DBMS中,可以通过存储引擎来决定表的类型,决定了表的存储方式。同时MySQL DBMS也提供了数据类型来决定表存储数据的类型。MySQL DBMS提供了

整数类型、浮点数类型、定点数类型和位类型、日期和时间类型、字符串类型

1、整数类型

MySQL DBMS除了支持标准SQL中的所有证书类型(SMALLINT和INT)外,还进行了相应的扩展。扩展后增加了TINYINT、MEDIUMINT和BIGINT类型

下表是各种整数类型的特性

4227e778326669d8adfe6b54546ffc85.png

在具体使用MySQL DBMS时,如果需要存储整数类型数据,则可以选择上述的整数类型,至于选择哪一个,首先需要判断存储证书数据的取值范围,当不超过

255时,那选择TINYINT类型就足够了。虽然BIGINT类型的取值范围最大,最常用的证书类型却是INT。

如果无法区分各个整数类型的表示范围,可以通过查看MySQL的系统帮助查看相关信息。

查看帮助信息

help contents可以查看MySQL帮助文档支持的目录列表,然后根据需要查看的条目选择查看。

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

MySQL DBMS除了支持标准SQL中所有的浮点类型(FLOAT和DOUBLE)、定点数类型(DEC)外,还进行了相应扩展。扩展后增加了位类型(BIT)

7005c4400d9d37380a91360bc4f2bb4a.png

在具体使用时,如果需要存储小数数据,则可以选择FLOAT和DOUBLE类型,如何选择需要判断存储小数数据需要精确的小数位数,当需要精确到小数点后10位

就需要选择DOUBLE类型

bb5e9190000ff396c1ef99254c50a9b6.png

存储小数数据,除了可以使用FLOAT和DOUBLE类型外,还可以选择DEC和DECIMAL类型,当要求小数数据精度非常高时,可以选择DEC和DECIMAL类型,它们

的精确度比DOUBLE类型还要高

FLOAT、DOUBLE数据类型存储数据时存储的是近似值,而DECIMAL存储的是字符串,因此提供了更高的精度,在需要表示金额等货币类型时优先选择DECIMAL数据类型

8f9f0577c70d1c51d3ac0a1792e9e683.png

3、日期和时间类型

MySQL DBMS中有多种表示日期和时间的数据类型,各种版本有微小的差异,下表是MySQL DBMS所支持的日期和时间类型的特性

73a32bf1f5455c945b6a2d10b219dc8a.png

具体应用中,各种日期和时间类型的应用场合:

如果要表示年月日,一般会使用DATE类型

如果要表示年月日时分秒,一般会选择DATETIME类型

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

如果要表示时分秒,一般会使用TIME类型

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

4、字符串类型

MySQL DBMS中有多种表示字符串的数据类型,各种版本有微小的差异,下表展示了MySQL DBMS中所支持的CHAR系列字符串类型的特性

95d3f61ba9b99117808633945d7ee857.png

具体使用MySQL DBMS时,如果需要存储少量字符串,可以选择CHAR和VARCHAR,如果所存储的字符串长度是不固定的,变化的,那就选择VARCHAR;否则,选择CHAR

##########################################################################################################################

下表是MySQL DBMS所支持的TEXT类型的字符串的特性

fc0b8f2959df21fad9b95582d2760a99.png

具体使用时,如果需要存储大量字符串(存储文章内容的纯文本),则可以选择TEXT系列字符串类型。至于具体选择哪一个,需要判断所存储字符串长度,根据存储字符串长度来决定合适的类型

##########################################################################################################################

下表是MySQL DBMS 支持的BINARY系列字符串类型的特性

41a9951a80dae0321db8e0ad48f61525.png

具体使用中,如果需要存储少量二进制数据,则可以选择BINARY和VARBINARY类型。至于选择具体哪一个,判断所存储的二进制数据长度是否是变化的,如果是选择VARBINARY类型;否则选择BINARY类型

##########################################################################################################################

下表是MySQL DBMS支持的BLOB系列字符串类型的特性

1677ab370fc2898549006e6c688f2f6f.png

如果需要存储大量二进制数据(存储电影等视频文件),可以选择BLOB字符串。具体选择哪个,需要判断所存储二进制数据的长度来决定

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值