MySql 数据库存储引擎

常用引擎

数据库中的表也应该有不同的类型,表的类型不同,会对应mysql不同的存取机制,表类型又称为存储引擎。

存储引擎就是如何存储数据、如何为存储的数据建立索引和如何更新、查询数据等技术的实现方法。

MySql数据库提供了多种存储引擎。用户可以根据不同的需求为数据表选择不同的存储引擎,用户也可以根据自己的需要编写自己的存储引擎。

1、InnoDB 存储引擎

  • 从 MySQL 5.5.8 版本开始是默认的存储引擎。
  • InnoDB 存储引擎具备高可用性、高性能以及高可扩展性。
  • 支持事务,其特点是行锁设计、支持外键,并支持类似 Oracle 的非锁定读,即默认读取操作不会产生锁。
  • InnoDB 存储引擎提供了插入缓冲(insert buffer)、二次写(doublewrite)、自适应哈希索引(adaptive hash index)、预读(read ahead)
  • 对于表中数据的存储,InnoDB 存储引擎采用了聚集(clustered)的方式,每张表都是按
    主键的顺序进行存储的,如果没有显式地在表定义时指定主键,InnoDB 存储引擎会为每一 行生成一个 6 字节的
    ROWID,并以此作为主键。

2、MyISAM 存储引擎

  • 不支持事务、表锁设计、支持全文索引,
  • 主要面向一些 OLAP 数 据库应用,
  • 在 MySQL 5.5.8 版本之前是默认的存储引擎(除 Windows 版本外)。
  • MyISAM 存储引擎的缓冲池只缓存(cache)索引文件,而不缓存数据文件

3、NDB 存储引擎

  • 数据全部放在内存中(从 5.1 版本开始,可以将非索引数 据放在磁盘上),因此主键查找(primary keylookups)的速度极快,其面向的也是 OLTP 的数据库应用类型。

4、Memory 存储引擎

  • Memory 存储引擎中的数据都存放在内存中,数据库重 启或发生崩溃,表中的数据都将消失。
  • 它非常适合于存储 OLTP 数据库应用中临时数据的临时表,也可以作为 OLAP 数据库应用中数据仓库的维度表。
  • Memory 存储引擎默认使用哈希 索引,而不是通常熟悉的 B+ 树索引。

5、Infobright 存储引擎

第三方的存储引擎。其特点是存储是按照列而非行的,因此非常 适合 OLAP 的数据库应用。

6、NTSE 存储引擎

网易公司开发的面向其内部使用的存储引擎。目前的版本不支持事务, 但提供压缩、行级缓存等特性,不久的将来会实现面向内存的事务支持。

7、BLACKHOLE

黑洞存储引擎,可以应用于主备复制中的分发主库。

MySQL 数据库还有很多其他存储引擎,上述只是列举了最为常用的一些引擎。

使用引擎

show engines\G  #查看所有支持的存储引擎
#指定引擎
create table innodb_t1(id int,name char)engine=innodb;
#配置默认引擎
    /etc/my.cnf
    [mysqld]
    default-storage-engine=INNODB
    innodb_file_per_table=1
#更改存储引擎
alter table service engine=innodb;
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值