MySQL 你可能忽视的选择问题

我们在 MySQL 入门篇主要介绍了基本的 SQL 命令、数据类型和函数,在局部以上知识后,你就可以进行 MySQL 的开发工作了,但是如果要成为一个合格的开发人员,你还要具备一些更高级的技能,下面我们就来探讨一下 MySQL 都需要哪些高级的技能
MySQL 存储引擎存储引擎概述数据库最核心的一点就是用来存储数据,数据存储就避免不了和磁盘打交道 。那么数据以哪种方式进行存储,如何存储是存储的关键所在 。所以存储引擎就相当于是数据存储的发动机,来驱动数据在磁盘层面进行存储 。
MySQL 的架构可以按照三层模式来理解

MySQL 你可能忽视的选择问题

文章插图
 
存储引擎也是 MySQL 的组建,它是一种软件,它所能做的和支持的功能主要有
  • 并发
  • 支持事务
  • 完整性约束
  • 物理存储
  • 支持索引
  • 性能帮助
MySQL 默认支持多种存储引擎,来适用不同数据库应用,用户可以根据需要选择合适的存储引擎,下面是 MySQL 支持的存储引擎
  • MyISAM
  • InnoDB
  • BDB
  • MEMORY
  • MERGE
  • EXAMPLE
  • NDB Cluster
  • ARCHIVE
  • CSV
  • BLACKHOLE
  • FEDERATED
默认情况下,如果创建表不指定存储引擎,会使用默认的存储引擎,如果要修改默认的存储引擎,那么就可以在参数文件中设置 default-table-type,能够查看当前的存储引擎
show variables like 'table_type';
MySQL 你可能忽视的选择问题

文章插图
 
奇怪,为什么没有了呢?网上求证一下,在 5.5.3 取消了这个参数
可以通过下面两种方法查询当前数据库支持的存储引擎
show engines g
MySQL 你可能忽视的选择问题

文章插图
 
在创建新表的时候,可以通过增加 ENGINE 关键字设置新建表的存储引擎 。
create table cxuan002(id int(10),name varchar(20)) engine = MyISAM;
MySQL 你可能忽视的选择问题

文章插图
 
上图我们指定了 MyISAM 的存储引擎 。
如果你不知道表的存储引擎怎么办?你可以通过 show create table 来查看
MySQL 你可能忽视的选择问题

文章插图
 
如果不指定存储引擎的话,从MySQL 5.1 版本之后,MySQL 的默认内置存储引擎已经是 InnoDB了 。建一张表看一下
MySQL 你可能忽视的选择问题

文章插图
 
如上图所示,我们没有指定默认的存储引擎,下面查看一下表
MySQL 你可能忽视的选择问题

文章插图
 
可以看到,默认的存储引擎是 InnoDB 。
如果你的存储引擎想要更换,可以使用
alter table cxuan003 engine = myisam;来更换,更换完成后回显示 0 rows affected ,但其实已经操作成功
MySQL 你可能忽视的选择问题

文章插图
 
我们使用 show create table 查看一下表的 sql 就知道
MySQL 你可能忽视的选择问题

文章插图
 
存储引擎特性下面会介绍几个常用的存储引擎以及它的基本特性,这些存储引擎是 **MyISAM、InnoDB、MEMORY 和 MERGE **
MyISAM在 5.1 版本之前,MyISAM 是 MySQL 的默认存储引擎,MyISAM 并发性比较差,使用的场景比较少,主要特点是