关于存储引擎
存储引擎是MySQL数据库管理系统的重要特征之一,在具体开发时,为了提高MySQL数据库管理系统的使用效率和灵活性,可以
选择存储引擎的实际需求。 因为存储引擎指定表的类型,如如何存储数据、如何编制索引以及是否支持事务,而存储引擎则决定是否计算表
飞机内的存储方式。
用户在选择存储引擎之前,必须确定数据库管理系统支持的存储引擎。
SQL语句: show engines;
为了容易看到,我们通常这样写。 show engines G
*选择版本(; 显示MySQL数据库管理系统的版本信息
运行结果显示,MySQL 5.6支持9种存储引擎,分别为FEDERATED、MRG_MYISAM、MyISAM、BLACKHOLE、CSV、MEMORY、ARCHIVE、inoddom
其中Engine参数表示存储引擎名称。 Support参数指示MySQL数据库管理系统是否支持存储引擎,值YES表示支持,NO表示不支持,值DEFAULT表示DBMS默认支持
Comment参数表示有关存储引擎的注释。 Transactions参数指示存储引擎是否支持事务,是表示支持,否表示不支持。 XA参数指示存储引擎支持的分布式是否符合XA规范,是表示支持。
o表示不支持; Savepoints参数指示存储引擎是否支持事务中的保存点,是表示支持,否表示不支持
要执行SQL语句,请执行';' 可以使用,“g”和“g”符号表示语句的结尾。 前两个符号的作用相同,G不仅可以表示语句结束,还可以使结果显示得更漂亮
在MySQL数据库管理系统中,可以使用show engines查看支持的存储引擎,也可以使用show variables查看支持的存储引擎
SQL:show variables like 'have% ';
Variable_name参数表示存储引擎的名称。 Value参数指示MySQL数据库管理系统是否支持此存储引擎,是表示支持,否表示不支持,禁用表示支持但未打开
使用默认存储引擎
在刚才的研究中,我们发现MySQL 5.6数据库管理系统的默认存储引擎是InnoDB。 在数据库管理系统中,是否可以更改默认存储引擎? 让我们看看默认存储引擎的行为
1、查询默认存储引擎
要操作默认存储引擎,首先要验证默认存储引擎是什么。 执行SQL语句show variables以显示默认存储引擎
SQL:showvariableslike ' storage _ engine % '; #like关键字为“storage_engine%”表示查询默认存储引擎
根据运行结果,默认的存储引擎是InnoDB
2、修改默认存储引擎
在MySQL数据库管理系统中,如果需要更改默认的存储引擎,可以使用两种方法:向导方法和手动修改配置文件
要在向导中更改默认存储引擎,必须在图形实例配置向导中选择默认存储引擎。 建议手动更改配置文件
如果手动更改配置文件以更改默认存储引擎,则必须更改MySQL数据库管理系统配置文件my.ini。 步骤如下。
a、修改[mysqld]组的默认存储引擎参数
b、重新启动MySQL服务
3、选择存储引擎
在具体使用MySQL数据库管理系统时,选择合适的存储引擎是一个非常复杂的问题。 每个存储引擎都有自己的特性、优势和APP应用程序,因此不能自由选择存储引擎。
以下是一些常见的存储引擎。 特征请参照下表
MyISAM存储引擎:不支持事务,也不支持外键,因此访问速度很快。 因此,此存储引擎非常适合不要求事务完整性且以访问为中心的APP应用程序
InnoDB存储引擎比MyISAM存储引擎占用更多的磁盘空间,因为它具有支持事务安装、提交、回滚和崩溃恢复功能
因此,此存储引擎非常适合需要并发控制的APP应用程序,因为它需要频繁的更新和删除操作,而且还要求事务的完整性
内存存储引擎:存储引擎使用内存存储数据,因此对存储引擎的数据访问速度很快,但不保证安全。 如果与APP应用程序相关的数据很小,则必须进行
最适合此存储引擎的快速访问
数据类型
在MySQL DBMS中,存储引擎可以确定表的类型,并确定表的存储方式。 同时MySQL DBM
S也提供了数据类型来决定表存储数据的类型。MySQL DBMS提供了整数类型、浮点数类型、定点数类型和位类型、日期和时间类型、字符串类型
1、整数类型
MySQL DBMS除了支持标准SQL中的所有证书类型(SMALLINT和INT)外,还进行了相应的扩展。扩展后增加了TINYINT、MEDIUMINT和BIGINT类型
下表是各种整数类型的特性
在具体使用MySQL DBMS时,如果需要存储整数类型数据,则可以选择上述的整数类型,至于选择哪一个,首先需要判断存储证书数据的取值范围,当不超过
255时,那选择TINYINT类型就足够了。虽然BIGINT类型的取值范围最大,最常用的证书类型却是INT。
如果无法区分各个整数类型的表示范围,可以通过查看MySQL的系统帮助查看相关信息。
查看帮助信息
help contents可以查看MySQL帮助文档支持的目录列表,然后根据需要查看的条目选择查看。
2、浮点数类型、定点数类型和位类型
MySQL DBMS除了支持标准SQL中所有的浮点类型(FLOAT和DOUBLE)、定点数类型(DEC)外,还进行了相应扩展。扩展后增加了位类型(BIT)
在具体使用时,如果需要存储小数数据,则可以选择FLOAT和DOUBLE类型,如何选择需要判断存储小数数据需要精确的小数位数,当需要精确到小数点后10位
就需要选择DOUBLE类型
存储小数数据,除了可以使用FLOAT和DOUBLE类型外,还可以选择DEC和DECIMAL类型,当要求小数数据精度非常高时,可以选择DEC和DECIMAL类型,它们
的精确度比DOUBLE类型还要高
FLOAT、DOUBLE数据类型存储数据时存储的是近似值,而DECIMAL存储的是字符串,因此提供了更高的精度,在需要表示金额等货币类型时优先选择DECIMAL数据类型
3、日期和时间类型
MySQL DBMS中有多种表示日期和时间的数据类型,各种版本有微小的差异,下表是MySQL DBMS所支持的日期和时间类型的特性
具体应用中,各种日期和时间类型的应用场合:
如果要表示年月日,一般会使用DATE类型
如果要表示年月日时分秒,一般会选择DATETIME类型
如果需要经常插入或更新日期为当前系统时间,一般会使用TIMESTAMP类型
如果要表示时分秒,一般会使用TIME类型
如果要表示年份,一般会使用YEAR类型。因为该类型比DATE类型占用更少的空间
4、字符串类型
MySQL DBMS中有多种表示字符串的数据类型,各种版本有微小的差异,下表展示了MySQL DBMS中所支持的CHAR系列字符串类型的特性
具体使用MySQL DBMS时,如果需要存储少量字符串,可以选择CHAR和VARCHAR,如果所存储的字符串长度是不固定的,变化的,那就选择VARCHAR;否则,选择CHAR
##########################################################################################################################
下表是MySQL DBMS所支持的TEXT类型的字符串的特性
具体使用时,如果需要存储大量字符串(存储文章内容的纯文本),则可以选择TEXT系列字符串类型。至于具体选择哪一个,需要判断所存储字符串长度,根据存储字符串长度来决定合适的类型
##########################################################################################################################
下表是MySQL DBMS 支持的BINARY系列字符串类型的特性
具体使用中,如果需要存储少量二进制数据,则可以选择BINARY和VARBINARY类型。至于选择具体哪一个,判断所存储的二进制数据长度是否是变化的,如果是选择VARBINARY类型;否则选择BINARY类型
##########################################################################################################################
下表是MySQL DBMS支持的BLOB系列字符串类型的特性
如果需要存储大量二进制数据(存储电影等视频文件),可以选择BLOB字符串。具体选择哪个,需要判断所存储二进制数据的长度来决定