什么是存储引擎?
MySQL中的数据用各种不同的技术存储在文件(或者内存)中。这些不同的技术以及配套的相关功能在 MySQL中被称作存储引擎(也称作表类型)。
MySql的存储引擎:
- MyISAM
节省数据库空间,当数据读远大于修改时,可以使用该存储引擎 - InnoDB
支持事务,如果数据修改较多时,可以使用该存储引擎 - MEMORY
存储在内存中,速度快,如果存储非永久性数据时,可以使用该存储引擎
InnoDB
InnoDB是一个健壮的事务型存储引擎,这种存储引擎已经被很多互联网公司使用,为用户操作非常大的数据存储提供了一个强大的解决方案。
适用性:
1.更新密集的表。InnoDB存储引擎特别适合处理多重并发的更新请求。
2.事务。InnoDB存储引擎是支持事务的标准MySQL存储引擎。
3.自动灾难恢复。与其它存储引擎不同,InnoDB表能够自动从灾难中恢复。
4.外键约束。MySQL支持外键的存储引擎只有InnoDB。
5.支持自动增加列AUTO_INCREMENT属性。
MEMORY
使用MySQL Memory存储引擎会将数据存储再内存中,在提高性能的同事,当mysqld守护进程崩溃时,所有的Memory数据都会丢失。
一般在以下几种情况下使用Memory存储引擎:
1.目标数据较小,而且被非常频繁地访问。
2.如果数据是临时的,而且要求必须立即可用,
3.存储在Memory表中的数据如果突然丢失,不会对应用服务产生实质的负面影响。
MERGE
MERGE存储引擎是一组MyISAM表的组合,这些MyISAM表结构必须完全相同,常用于日志。日志需要分成多个表存储,但是可能需要聚合查询报表。
ARCHIVE
Archive拥有很好的压缩机制,它使用zlib压缩库,在记录被请求时会实时压缩,所以它经常被用来当做仓库使用。
查看引擎:
show engines;
存储引擎使用例子:
create table users
(
….
)engine=memory;