MySQL支持三个引擎:ISAM、MyISAM和HEAP,根据需求不同来选择不同的引擎
数据库的引擎到决于 MySQL 在安装的时候是如何被编译的,要添加一个新的引擎,就必须重新编译
--with-plugins=partition,innobase
ISAM:
读取操作速度很快,而且不占用大量的内存和存储资源
不支持事物处理
不能够容错
若硬盘崩溃,将无法恢复数据
MyISAM:(默认表类型)
MyISAM是MySQL的ISAM扩展格式和缺省的数据库引擎,有如下扩展:
1)、二进制层次的可移植性。
2)、NULL列索引。
3)、对变长行比ISAM表有更少的碎片。
4)、支持大文件。
5)、更好的索引压缩。
6)、更好的键码统计分布。
7)、更好和更快的auto_increment处理。
MyISAM适合:(1)做很多count 的计算;(2)插入不频繁,查询非常频繁;(3)没有事务
InnoDB Berkley DB(BDB):(支持事物安全)
支持外键
支持行锁
支持事务
采用双授权:GPL和 商业授权
适用于有大量的 update 和 insert 操作,高并发 QPS(每秒查询率) 较高 的环境
查看数据库引擎:
查看现已提供存储引擎: mysql> show engines;
查看当前默认存储引擎: mysql> show variables like ‘%storage_engine%‘;
查看某个表用了什么引擎(在显示结果里,参数 engine 后面的参数):
mysql> show create table 表名;
如: mysql> show create test_db;
修改 MySQL 表空间引擎:
设置 InnoDB 为默认引擎:
在配置文件my.cnf 中的[mysqld] 下面加入 default-storage-engine=INNODB
修改表引擎:
alter table test_db engine=myisam;
alter table test_db engine=innodb;
注意:如果添加innodb 引擎报错,需删除 /mysql/data 目录下的 ib_logfile0,ib_logfile1 文件即可