MyISAM引擎和InnoDB引擎的特点

随着MySQL的不断更新,MySQL常用的两大存储引擎的MyISAM和InnoDB也在不断的变化着,下面总结下这两大存储引擎的特点,朋友们可以根据业务需求,选择合适的存储引擎。^.^

MyISAM引擎的特点:

  1、堆组织表;

  2、不支持事务;

  3、数据文件和索引文件分开存储;

  4、支持全文索引;

  5、主键索引和二级索引完全一样都是B+树的数据结构,只有是否唯一的区别(主键和唯一索引有唯一属性,其他普通索引没有唯一属性。B+树叶子节点存储的都是指向行记录的row pointer);

  6、有特殊计数器记录当前记录数;

  7、不支持Crash recovery;

  8、索引文件很容易损坏;

InnoDB引擎的特点:

  1、索引组织表;

  2、支持事务;

  3、数据文件和索引文件存储在同一个表空间中;

  4、在5.6以前,不支持全文索引;

  5、主键和二级索引数据结构一样都是B+树,但叶子节点存储的键值不一样(主键的叶子节点存储整行数据,因此也称为聚集索引;而二级索引的叶子节点存储是主键的键值)

  6、支持Crash recovery;

  7、相同数据量时,InnoDB表空间文件大小约为MyISAM引擎的1.5~2倍;

想了解更多关于MyISAM和InnoDB的性能对比,可以参考Percona的这个http://www.percona.com/blog/2007/01/08/innodb-vs-myisam-vs-falcon-benchmarks-part-1/

时间: 2024-11-06 09:23:00

MyISAM引擎和InnoDB引擎的特点的相关文章

浅谈MYSQL引擎之INNODB引擎

MYSQL 常用的引擎主要有一下几种,MRG_MYISAM .CSV .MyISAM.InnoDB.MEMORY ,NDB,其中MyISAM.InnoDB是mysql最常用的存储引擎,今天主要讨论 InnoDB引擎. 一.什么是InnoDB引擎 InnoDB引擎是MYSQL数据库的另一个重要的额存储引擎,正成为目前MYSQL AB所有发行新版的标准,被包含在所有二进制安装包里. 和其他的存储引擎相比,InnoDB引擎的优点支持兼容ACID的事物,以及参数完整性(即对外建的支持). MYSQL5.

MySQL基于MyISAM引擎和InnoDB引擎性能测试对比

在MySQL中数据表,使用MyISAM引擎快一些,存储空间小一些:使用InnoDB引擎插入速度稍快,关键是能支持事务. 实际应用中使用MyISAM还是InnoDB好呢?得具体问题具体分析,由你的系统特性决定, 如使用MyISAM,得到性能提升,但将失去了对事务的支持,到底值不值呢,还得充分了解两种方式的优劣程度, 下面是我的一次测试结果: MyISAM 数据量 数据占空间(byte) 索引占空间(byte) 基于索引查询(s) 无索引查询(s) coun(*)查询(s) 插入100万记录(s)

memory引擎和innodb引擎速度对比

ysql> insert into innodb_test (name) select name from innodb_test; Query OK, 1048576 rows affected (1 min 9.47 sec) Records: 1048576 Duplicates: 0 Warnings: 0 mysql> insert into memory_test (name) select name from memory_test; Query OK, 1048576 rows

MyISAM和InnoDB引擎

MyISAM MyISAM引擎是MySQL关系数据库管理系统的默认存储引擎(5.5.xx版本之前),这种MySQL表存储结构从就的ISAM代码扩展出许多有用的功能,在新版的MYSQL中InnoDB引擎由于对事物参照的完整性,已经更高并发性等优点开始逐渐取代MyISAM引擎 MyISAM引擎特点: 1.不支持事物(事物是指逻辑上的一组操作,组成这组操作的各个单元,要么全部成功,要么全部失败) 2.表级锁定(更新是锁整个表).其锁定机制是表级索引,这虽然可以让锁定的实现成本很小,但是也同时大大降低了

[MySQL] 存储引擎中InnoDB与Myisam的主要区别

1, 事务处理 innodb 支持事务功能,myisam 不支持. Myisam 的执行速度更快,性能更好.   2,select ,update ,insert ,delete 操作   MyISAM:如果执行大量的SELECT,MyISAM是更好的选择 InnoDB:如果你的数据执行大量的INSERT或UPDATE,出于性能方面的考虑,应该使用InnoDB表 3,锁机制不同   InnoDB 为行级锁,myisam 为表级锁. 注意:当数据库无法确定,所找的行时,也会变为锁定整个表. 如: 

Mysql更换MyISAM存储引擎为Innodb的操作记录

一般情况下,mysql会默认提供多种存储引擎,可以通过下面的查看: 1)查看mysql是否安装了innodb插件.通过下面的命令结果可知,已经安装了innodb插件. mysql> show plugins; +------------+--------+----------------+---------+---------+ | Name | Status | Type | Library | License | +------------+--------+----------------

MySQL存储引擎【InnoDB、MyISAM、Memory】

数据库,MySQL这样存在多存储引擎的数据库软件,清楚常见的存储引擎的区别,使用合适的存储引擎,使得项目跑的更顺畅,有时候对于一个项目,甚至比项目本身都重要.这篇文章,旨在浅谈常见的三种存储引擎的区别,优缺点.是学习也是分享. 1:查看MySQL所支持的存储引擎: 1.1 show engines; 1.2 show variables like 'have%'; 这样,我们清楚了MySQL所支持的存储引擎都有哪些. 下面,分析一下几个常见的存储引擎.InnoDB,MYISAM和Memory.

InnoDB引擎的auto_increment字段和MyISAM引擎的auto_increment字段的异同

1. InnoDB引擎的auto_increment字段必须是索引.如果是组合索引,必须为组合索引的第一列. create table autoincrement_demo_inno(     id1 int not null auto_increment,     id2 int not null,     name varchar(10),     index(id1, id2) ) engine=InnoDB 此处必须是index(id1, id2),如果id1不放在第一位则会出错.只要插

MyISAM 与InnoDB引擎

Mysql提供了插件式(pluggable)的存储引擎,存储引擎基于表的. Show engines:查看存储引擎 备注:my.ini配置文件的[mysqld]选项组中,参数default-storage-engine配置了mysql服务实例的默认存储引擎.默认安装mysql后,default-storage-engine的参数值为InnoDB. InnoDB存储引擎 InnoDB是事务(transaction)安全的,并且支持外键(foreign key).如果某张表主要提供OLTP支持,需要