当前位置: 移动技术网 > IT编程>数据库>Mysql > MySQL修改默认存储引擎的实现方法

MySQL修改默认存储引擎的实现方法

2017年12月12日  | 移动技术网IT编程  | 我要评论

mysql存储引擎:

mysql服务器采用了模块化风格,各部分之间保持相对独立,尤其体现在存储架构上。存储引擎负责管理数据存储,以及mysql的索引管理。通过定义的api,mysql服务器能够与存储引擎进行通信。目前使用最多的是myisam和innodb。innodb被oracle收购后,mysql自行开发的新存储引擎falcon将在mysql6.0版本引进。

myisam引擎是一种非事务性的引擎,提供高速存储和检索,以及全文搜索能力,适合数据仓库等查询频繁的应用。myisam中,一个table实际保存为三个文件,.frm存储表定义,.myd存储数据,.myi存储索引。

innodb则是一种支持事务的引擎。所以的数据存储在一个或者多个数据文件中,支持类似于oracle的锁机制。一般在oltp应用中使用较广泛。如果没有指定innodb配置选项,mysql将在mysql数据目录下创建一个名为ibdata1的自动扩展数据文件,以及两个名为ib_logfile0和ib_logfile1的日志文件。

创建table时可以通过engine关键字指定使用的存储引擎,如果省略则使用系统默认的存储引擎:create table t (i int) engine = myisam;

查看系统中支持的存储引擎类型:

mysql> show engines;| engine | support | comment || myisam | yes | default engine as of mysql 3.23 with greatperformance | 

 | memory | yes | hash based, stored in memory, useful for temporarytables | 

 | innodb | default | supports transactions, row-level locking, andforeign keys | 

 | berkeleydb | no | supports transactions and page-level locking| 

 | blackhole | no | /dev/null storage engine (anything you write toit disappears) | 

 | example | no | example storage engine | 

 | archive | yes | archive storage engine | 

 | csv | no | csv storage engine | 

 | ndbcluster | no | clustered, fault-tolerant, memory-based tables| 

 | federated | no | federated mysql storage engine | 

 | mrg_myisam | yes | collection of identical myisam tables | 

 | isam | no | obsolete storage engine |12 rows in set (0.00 sec) 

标准安装程序中只提供部分引擎的支持,如果需要使用其他的存储引擎,需要使用源代码加不同的参数重新编译。其中default表明系统的默认存储引擎,可以通过修改配置参数来变更:

default-storage-engine=myisam

查看某个存储引擎的具体信息

mysql> show engine innodb status\g;

一般安装系统默认是innodb

default-storage-engine=innodb

1.可以在启动数据库服务器时在命令行后面加上–default-storage-engine或–default-table-type选项。

2.更灵活的方式是在随mysql服务器发布同时提供的mysql客户端时指定使用的存储引擎。最直接的方式是在创建表时指定存储引擎的类型,向下面这样:

create table mytable (id int, titlechar(20)) engine = innodb

修改表的存储引擎:

alter table enginetest engine = innodb;

修改默认存储引擎:

在mysql配置文件(linux下为/etc/my.cnf),在mysqld后面增加default-storage-engine=innodb即可。

但是如果表建立的时候是myisam,要更改整个数据库表的存储引擎,一般要一个表一个表的修改,比较繁琐,可以采用先把数据库导出,得到sql,把myisam修改成innodb,再导入的方式。

以上这篇mysql修改默认存储引擎的实现方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持移动技术网。

如对本文有疑问, 点击进行留言回复!!

相关文章:

验证码:
移动技术网