MYSQL两大存储引擎INNODB与MYISAM

1.InnoDB存储引擎

MySQL5.5中InnoDB成为默认的存储引擎InnoDB是事务型存储引擎,被设计用来处理大量的短期事务。它的性能和自动崩溃恢复特性,使得它在非事务场景中也很流行。

所以可以这么说:“除非需要用到某些InnoDB不具备的特性,并且没有其他办法可以替代,否则都应该优先选择它”。

  InnoDB的数据存储在表空间中,它可以将每个表的数据和索引存放在单独文件中。

 InnoDB采用MVCC来支持高并发,并且实现了四个标准的隔离级别。默认级别是REPEATABLE READ(可重复读),并且通过间隙锁策略防止幻读的出现。

InnoDB表示基于聚簇索引建立的,聚簇索引对主键的查询有很高的性能。

InnoDB支持真正的热备份,可以通过XtraBackup工具实现。

InnoDB内部做了很多优化,包括从磁盘读取数据时采用的可预测性预读,能够自动在内存中创建hash索引,能够加速插入操作的插入缓冲区等。

  应用场景

需要在线热备份

       数据量大,需要系统崩溃后快速恢复。比如订单处理。

2.MyISAM存储引擎

MySQL5.1之前,MyISAM为默认的存储引擎。MyISAM不支持事务和行级锁且最大缺陷就是崩溃后无法安全恢复。

.MyISAM将表存储在两个文件中:数据文件和索引文件。

MyISAM对整张表加锁,读取时对需要的所有表加共享锁,写入时加排它锁。但是在表有读取查询时,也可以往表中插入新的记录(并发插入)

MyISAM可以手工或者自动执行检查修复操作,但是可能导致数据丢失而且修复操作非常慢。

MyISAM表中BLOB和TEXT等长字段也可以基于前500个字符创建索引。MyISAM也支持全文索引,这是基于分词创建的索引,可以支持复杂的查询。

MyISAM在创建表时候如果指定DELAY_KEY_WRITE(延迟更新索引键),在每次修改执行完成时会将索引写入内存中的键缓冲区,挡在清理键缓冲区或者关闭表时才会将对应索  引块写入磁盘,这种方式可以极大提升写入性能。但是在数据库或主机崩溃时索引会损坏。

应用场景

主要是SELECT和INSERT操作的场景,比如一般日志型的应用。

时间: 2024-08-10 21:21:00

MYSQL两大存储引擎INNODB与MYISAM的相关文章

MySQL存储引擎InnoDB与Myisam

InnoDB与Myisam的六大区别 InnoDB与Myisam的六大区别 MyISAM InnoDB 构成上的区别: 每个MyISAM在磁盘上存储成三个文件.第一个 文件的名字以表的名字开始,扩展名指出文件类型..frm文件存储表定义.数据文件的扩 展名为.MYD (MYData).索引文件的扩 展名是.MYI (MYIndex). 基于磁盘的资源是InnoDB表空间数据文件和它的日志文件,InnoDB 表的 大小只受限于操作系统文件的大小,一般为 2GB 事务处理上方面: MyISAM类型的

[转帖]mysql常用存储引擎(InnoDB、MyISAM、MEMORY、MERGE、ARCHIVE)介绍与如何选择

mysql常用存储引擎(InnoDB.MyISAM.MEMORY.MERGE.ARCHIVE)介绍与如何选择原创web洋仔 发布于2018-06-28 15:58:34 阅读数 1063 收藏展开 https://blog.csdn.net/CSDN___LYY/article/details/80844606 一:前言 数据库存储引擎是数据库底层软件组织,数据库管理系统(DBMS)使用数据引擎进行创建.查询.更新和删除数据.不同的存储引擎提供不同的存储机制.索引技巧.锁定水平等功能,使用不同的

谈谈MySQL两种存储引擎

Mysql有两种存储引擎:InnoDB与Myisam 二者之间有六大区别:   MyISAM InnoDB 构成上的区别: 每个MyISAM在磁盘上存储成三个文件.第一个 文件的名字以表的名字开始,扩展名指出文件类型..frm文件存储表定义.数据文件的扩 展名为.MYD (MYData).索引文件的扩 展名是.MYI (MYIndex). 基于磁盘的资源是InnoDB表空间数据文件和它的日志文件,InnoDB 表的 大小只受限于操作系统文件的大小,一般为 2GB 事务处理上方面: MyISAM类

MySQL - 两种存储引擎 (MyISAM PK InnoDB) + MVCC

总结 1.两种存储引擎各有各的有点,MyISAM专注性能,InnoDB专注事务.两者最大的区别就是InnoDB支持事务,和行锁. 2.InnoDB采用MVCC(Multi-Version Concurrency Control 多版本并发控制)来支持高并发,一种行级锁的变种.MVCC是通过保存数据在某一个时间点的快照来实现的,也就是说无论事务执行多久,每个事务看到的数据都是一致的.InnoDB的MVCC,是通过在每行记录后面保存两个隐藏的列来实现,这两个列一个保存了行的创建时间,一个保存了行的过

mysql 存储引擎 InnoDB 与 MyISAM 的区别和选择

http://www.blogjava.net/jiangshachina/archive/2009/05/31/279288.html 酷壳 - MySQL: InnoDB 还是 MyISAM? 51cto - InnoDB还是MyISAM 再谈MySQL存储引擎的选择 MyISAM VS InnoDB —— MySQL存储引擎的选择

mysql 流程函数 存储引擎 InnoDB简单特性

建表及插入数据语句: mysql> create table salary(userid int,salary decimal(9,2)); Query OK, 0 rows affected (0.11 sec) mysql> insert into salary values(1,1000),(2,2000),(3,3000),(4,4000),(5,5000),(1, null); Query OK, 6 rows affected (0.13 sec) Records: 6  Dupl

MySQL两种存储引擎: MyISAM和InnoDB 简单总结

MyISAM是MySQL的默认数据库引擎(5.5版之前),由早期的ISAM(Indexed Sequential Access Method:有索引的顺序访问方法)所改良.虽然性能极佳,但却有一个缺点:不支持事务处理(transaction).不过,在这几年的发展下,MySQL也导入了InnoDB(另一种数据库引擎),以强化参考完整性与并发违规处理机制,后来就逐渐取代MyISAM. InnoDB,是MySQL的数据库引擎之一,为MySQL AB发布binary的标准之一.InnoDB由Innob

MySQL两种存储引擎: MyISAM和InnoDB总结

MyISAM是MySQL的默认数据库引擎(5.5版之前),由早期的ISAM(Indexed Sequential Access Method:有索引的顺序访问方法)所改良.虽然性能极佳,但却有一个缺点:不支持事务处理(transaction).不过,在这几年的发展下,MySQL也导入了InnoDB(另一种数据库引擎),以强化参考完整性与并发违规处理机制,后来就逐渐取代MyISAM. InnoDB,是MySQL的数据库引擎之一,为MySQL AB发布binary的标准之一.InnoDB由Innob

mysql 存储引擎 innodb和myISAM(转)

mysql5.5+的版本默认引擎都是InnoDB,早期的Mysql版本默认的存储引擎是myISAM innodb: 1.事务操作2.外键操作3.行级锁,这是当有where条件的时候.没有where时,不知道在那一个范围进行搜索时,也是表锁.提供和 Oracle 一样的一致性的不加锁读取,能增加并发读的用户数量并提高性能,不会增加锁的数量.4.写的速度快,这是建立在索引的更新操作上 5.InnoDB 的设计目标是处理大容量数据时最大化性能,它的 CPU 利用率是其他所有基于磁盘的关系数据库引擎中最