MySQL存储引擎学习(一)

  存储引擎是什么?对于数据库来说,存储引擎是实现数据库底层数据的数据结构定义、存储以及查询等操作的模块或功能。

  不同的数据库具体不同的底层存储机制,也就是不同的存储引擎。数据库服务器在接收到客户端的SQL请求时,会将具体操作交由底层的存储引擎进行处理。

  如果你接触Oracle或mssql等数据库,你可能没有过多关注这些数据库的存储引擎,这是因为无论是Oracle还是mssql,都只有一种存储引擎,而且用户是不能修改其存储引擎的。相比于其他数据库,MySQL提供多种存储引擎,以满足不同的存储需求。

  MySQL服务器的存储引擎是一种"可插入"式体系结构,它提供了一个标准接口,实现了存储引擎的动态加载与卸载,这是MySQL实现多种存储引擎的基础,除了MySQL数据库默认提供的存储引擎外,MySQL支持第三方引擎的集成,通过MySQL提供的标准接口,第三方存储引擎可以非常方便地集成到我们MySQL服务器,也就是说,如果MySQL提供的存储引擎不能满足我们的需求,我们可以定制自己存储引擎来满足自己的需求。

  在MySQL中,存储引擎也叫数据表处理器或表类型,不同的存储引擎实现的效果各不相同,同一存储引擎处理的数据表有共同的属性与特征,我们可以根据自己应用程序使用的不同场景、存储数据的大小来使用不同的存储引擎。

  

简单地说了点理论之后,下面我们开始学习MySQL的存储引擎,内容主要有以下几个方面。

1.查看数据库支持的存储引擎  

在使用存储引擎之前,我们需要知道MySQL服务器支持哪些存储引擎,可以执行下面两个语句。

SHOW ENGINES;

SELECT * FROM INFORMATION_SCHEMA.ENGINES;

执行结果如下图所示:

MySQL服务器支持的存储引擎信息存储在INFORMATION_SCHEMA数据库的ENGINES表中,我们可以通过SELECT语句查询该表得到的结果。不过使用SHOW ENGINES,则更加方便。

ENGINES表存放存储引擎的基本信息,ENGINES表字段含义如下:

Engine:存储引擎名称。
Support:存储引擎是否可用,YES表示可用,NO表示不可用,DEFAULT表示数据库默认的存储引擎。
Comment:存储引擎的介绍信息。
Transactions:是否支持事务。
XA:是否支持分布式事务处理。
Savepoints:是否支持部分事务回滚。

 

2.查看与设置默认存储引擎

当ENGINES表Support字段值为DEFAULT时,则表示该存储引擎为默认存储引擎,除此之外,还有其他查看或设置默认存储引擎的方式。

(1).启动mysql服务器时设置默认存储引擎

通过mysqld程序启动服务器时,可在该程序后加上default-storage_engine = engine_name选项,来设置mysql的默认存储引擎。

(2).通过配置文件设置默认存储引擎

也可以在my.ini或my.cnf等配置文件加上如下配置
  

[mysqld]
default-storage_engine = engine_name;

这样,MySQL服务器启动时,会自动读取配置文件,来设置默认存储引擎。

在启动服务器后,如果要改变默认存储引擎,则可以通过以下四种方式

(3).查看当前会话默认存储引擎

SELECT @@SESSION.storage_engine;

(4).设置当前会话默认存储引擎

SET SESSION storage_engine = engine_name;

(5).查看全局默认存储引擎

SELECT @@GLOBAL.storage_engine;

(6).设置全局默认存储引擎

SET GLOBAL storage_engine = engine_name;

SESSION表示会话级,即该设置只对当前用户有效,而不会影响其他用户,GLOBAL表示全局级,如果改变则所有用户连接上MySQL服务器后的默认存储引擎都会使用GLOBAL storage_engine所设定的值,因此执行这个语句需要super权限。

3.创建数据表时,指定存储引擎。

存储引擎作用于数据表,因此,在创建建表时,可以指定数据库支持的任何存储引擎,如果在建表时CREATE语句没有使用engine=engine_name指定存储引擎,则该表使用默认存储引擎。

示例:创建名称为test的数据表,使用InnoDB存储引擎

CREATE TABLE test(
    id INT,
    name VARCHAR(20)
)ENGINE = InnoDB;#指定InnoDB存储引擎

以上建表语句使用InnoDB存储引擎,因此,对该表的存储及查询均由InnoDB来实现。

4.查看数据表的存储引擎

在创建数据表时可以指定存储引擎,同样,可以通过创建语句查询某个数据表使用的存储引擎。

示例:查询数据表test使用的存储引擎

SHOW CREATE TABLE语句用于查询创建数据的SQL语句,通过建表语句,我们可以查询到数据表使用的存储引擎。

 

5.修改存储数据表存储引擎

在执行完建表语句之后,也可以通过ALTER语句进行修改。

ALTER TABLE test ENGINE MyISAM;

 

 

转载于:https://www.cnblogs.com/xiaoyaopage/p/4827964.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值