Mysql引擎
其实最初版本的Mysql引擎并没有现在功能这么完善,包括事务等功能都是不完善的,但是有许多不同的引擎出来支持了这些需求
一般的情况下 mysql 会默认提供多种存储引擎
首先可以查看以下自己的数据库支持哪些引擎:
mysql> show engines;
在这里我们可以看到哪个引擎是我们的默认引擎,我的是 MyISAM
但是根据个人使用发现 MyISAM 是个不怎么好的引擎,因为它不支持事务,比如回滚等事务都是无法在这个数据库引擎上进行的
要注意,数据库存储引擎是相对数据表而言的,每个数据表都有一个指定的存储引擎
使用 sql 语句查看某张表的引擎 :
mysql> show create table 表名;
这里可以看到我的这张表使用的引擎是 InnoDB
InnoDB 是我个人比较喜欢使用也比较推荐使用的引擎
它支持事务,相对不支持事务的数据库引擎来说性能当然会相对差一点点
那么如何设置数据表引擎呢?
1.创建数据表时可以指定引擎
CREATE TABLE t_test(
...
...
)ENGINE=INNODB DEFAULT CHARSET=utf8;
#指定引擎和存储字符类型
2.对已创建的数据表修改引擎
ALTER TABLE table_name engine=innodb;
但是如果我们不去指定或者修改引擎的话,每次创建表它都会默认使用数据库默认的引擎,一般是 MyISAM
那我们每次都要指定 InnoDB 或者每次创建完表之后再去修改的话都会非常麻烦
那么我们如何修改数据库的默认引擎?
需要修改数据库的配置文件 my.ini 文件
这个文件就在数据库安装目录下
用 nodepad 或者 记事本打开这个配置文件,查找 default-storage-engine 项,这一项配置了默认的数据库引擎
将这一选项修改为你想要修改的默认引擎
比如我将它修改成 InnoDB
default-storage-engine=INNODB
注意:如果配置文件了有 skip-innodb 这一选项的话,要把它注释掉,因为它的意思是跳过 Innodb,如果这一配置存在的话是无法使用 innodb的
保存关闭文件
修改完毕之后,要重新启动 mysql 服务才能重新加载配置文件
net stop mysql
net start mysql
重启完毕之后,我们查看以下 引擎表
这里就已经可以看到默认的引擎是 InnoDB 了
之后建立表不需要刻意指定,默认的引擎就是 InnoDB了