查看mysql数据库的默认引擎及 修改默认引擎

在修改默认引擎之前,最好了解mysql读取配置文件my.cnf的顺序,以及mysql的目录结构 --默认basedir=/usr ,datadir=/var/lib/mysql,/etc/my.cnf
配置文件读取顺序详见另一篇帖子。

1.查看mysql的存储引擎信息
mysql> show engines;
+--------------------+---------+----------------------------------------------------------------+--------------+------+------------+
| Engine             | Support       | Comment                                                   
       | Transactions | XA   | Savepoints |
+--------------------+---------+----------------------------------------------------------------+--------------+------+------------+
| FEDERATED             | NO         | Federated MySQL storage engine                                     | NULL         | NULL | NULL       |
| MRG_MYISAM            | YES   
   | Collection of identical MyISAM tables                       
    | NO              | NO       | NO          |
| MyISAM                      | YES       | MyISAM storage engine                                             | NO              | NO       | NO          |
| BLACKHOLE          | YES       | /dev/null storage engine (anything you write to it disappears)  | NO              | NO       | NO          |
| MEMORY                  | YES       | Hash based, stored in memory, useful for temporary tables    | NO              | NO       | NO          |
| CSV                                | YES       | CSV storage engine                                                | NO              | NO       | NO          |
| ARCHIVE                          | YES       | Archive storage engine                                             | NO              | NO       | NO          |
| PERFORMANCE_SCHEMA | YES        | Performance Schema                                                | NO              | NO       | NO          |
| InnoDB                     | DEFAULT    | Supports transactions, row-level locking, and foreign keys      | YES             | YES     | YES        |
+--------------------+---------+----------------------------------------------------------------+--------------+------+--------
MySQL-5.5.19-1.linux2.6.i386的默认引擎为InnoDB。

2.设置mysql的默认存储引擎
编辑my.cnf配置文件,在服务器端配置信息[mysqld]下面添加:
default-storage-engine = MyISAM
即可设置mysql数据库的默认引擎为MyISAM

3.设置当前会话的默认存储引擎
SET  storage_engine=InnoDB;
即可以设置当前会话连接的默认存储引擎为InnoDB。

4.指定表的存储引擎
如:
create table t_innodb( id int(3) ) 
engine = innodb;
然后使用
mysql> show table status like 't_i%'\G;
查看表的详细信息。

5.修改表的存储引擎
ALTER TABLE t_name ENGINE = innodb;
修改表的存储引擎时,会重建表,结构文件、数据文件、索引文件等文件。
如果转化为myisam存储引擎,mysql会在datadir/db_name/目录下,生成临时表结构文件(.frm),临时数据文件(.MYD),临时索引文件(.MYI)。此处需要注意的是,myisam类型转换时,生成的.MYI索引文件比数据文件要大很多(这与mysql数据库索引的结构有关,B-Tree结构)(如果捕捉不到临时文件,请让表的数据量达到6位数)在数据文件目录下的表所在的库目录下运行:
while [ 1 ] ; do ls -l | grep -i '\#sql'; done)
如果转化为innodb存储引擎,因为innodb引擎默认使用共享表空间,数据文件、索引文件存储在ibdata1文件里面。
只有和innodb引擎有关的转化时,mysql数据库才会对ibdata1里面的data dictionary进行更新操作,删除旧的表信息,添加新的表信息。
参考链接:http://dev.mysql.com/doc/refman/5.1/en/storage-engine-setting.html



  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值