加入收藏 | 设为首页 | 会员中心 | 我要投稿 拼字网 - 核心网 (https://www.hexinwang.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > MySql教程 > 正文

MySQL中寻常存储引擎它们相互之间有哪些区别

发布时间:2022-03-11 05:03:13 所属栏目:MySql教程 来源:互联网
导读:这篇文章给大家分享的是有关MySQL中常用存储引擎它们相互之间有哪些区别的内容。小编觉得挺实用的,因此分享给大家做个参考。一起跟随小编过来看看吧。 MySQL中常用的四种存储引擎分别是: MyISAM存储引擎、innoDB存储引擎、MEMORY存储引擎、ARCHIVE存储引擎
       这篇文章给大家分享的是有关MySQL中常用存储引擎它们相互之间有哪些区别的内容。小编觉得挺实用的,因此分享给大家做个参考。一起跟随小编过来看看吧。
 
        MySQL中常用的四种存储引擎分别是: MyISAM存储引擎、innoDB存储引擎、MEMORY存储引擎、ARCHIVE存储引擎。本文将对这四种存储引擎作出重点介绍,最后对这四种存储引擎进行比较。
  
一、存储引擎
 
       1、存储引擎其实就是对于数据库文件的一种存取机制,如何实现存储数据,如何为存储的数据建立索引以及如何更新,查询数据等技术实现的方法。
 
       2、MySQL中的数据用各种不同的技术存储在文件(或内存)中,这些技术中的每一种技术都使用不同的存储机制,索引技巧,锁定水平并且最终提供广泛的不同功能和能力。在MySQL中将这些不同的技术及配套的相关功能称为存储引擎。
 
二、MySQL 中查看引擎
 
1、show  engines;  // 查看mysql所支持的存储引擎,以及从中得到mysql默认的存储引擎。
 
2、show  variables  like '% storage_engine';   // 查看mysql 默认的存储引擎
 
3、show  create   table  tablename ;   //  查看具体某一个表所使用的存储引擎,这个默认存储引擎被修改了!
 
4、show  table   status  from  database  where  name="tablename"   //准确查看某个数据库中的某一表所使用的存储引擎
 
三、MySQL中常用的几种存储引擎:
 
MyISAM存储引擎:
 
存放的位置:  MySQL如果使用MyISAM存储引擎,数据库文件类型就包括.frm、.MYD、.MYI,默认存放位置是C:Documentsand SettingsAll UsersApplication DataMySQLMySQL Server 5.1data
 
存放的方式: MyISAM 这种存储引擎不支持事务,不支持行级锁,只支持并发插入的表锁,主要用于高负载的select。
 
2.innoDB存储引擎
 
存储位置:MySQL如果使用InnoDB存储引擎,数据库文件类型就包括.frm、ibdata1、.ibd,存放位置有两个,.frm文件默认存放位置是C:Documents and SettingsAll UsersApplicationDataMySQLMySQL Server 5.1data,ibdata1、.ibd文件默认存放位置是MySQL安装目录下的data文件夹。
 
innodb存储引擎的mysql表提供了事务,回滚以及系统崩溃修复能力和多版本迸发控制的事务的安全。
 
innodb支持自增长列(auto_increment),自增长列的值不能为空,如果在使用的时候为空的话怎会进行自动存现有的值开始增值,如果有但是比现在的还大,则就保存这个值。
 
innodb存储引擎支持外键(foreign key) ,外键所在的表称为子表而所依赖的表称为父表。
 
innodb存储引擎最重要的是支持事务,以及事务相关联功能。
 
innodb存储引擎支持mvcc的行级锁。
 
innodb存储引擎索引使用的是B+Tree
 
优缺点:InnoDB的优势在于提供了良好的事务处理、崩溃修复能力和并发控制。缺点是读写效率较差,占用的数据空间相对较大。
 
3.MEMORY存储引擎
 
memory存储引擎相比前面的一些存储引擎,有点不一样,其使用存储在内从中的数据来创建表,而且所有的数据也都存储在内存中。
 
4.ARCHIVE存储引擎
 
该存储引擎非常适合存储大量独立的、作为历史记录的数据。区别于InnoDB和MyISAM这两种引擎,ARCHIVE提供了压缩功能,拥有高效的插入速度,但是这种引擎不支持索引,所以查询性能较差一些。
 
四.四种存储引擎比较
 
InnoDB:支持事务处理,支持外键,支持崩溃修复能力和并发控制。如果需要对事务的完整性要求比较高(比如银行),要求实现并发控制(比如售票),那选择InnoDB有很大的优势。如果需要频繁的更新、删除操作的数据库,也可以选择InnoDB,因为支持事务的提交(commit)和回滚(rollback)。
  
注意,同一个数据库也可以使用多种存储引擎的表。如果一个表要求比较高的事务处理,可以选择InnoDB。这个数据库中可以将查询要求比较高的表选择MyISAM存储。如果该数据库需要一个用于查询的临时表,可以选择MEMORY存储引擎。
 
感谢各位的阅读!关于MySQL中常用存储引擎它们相互之间有哪些区别就分享到这里了,希望以上内容可以对大家有一定的帮助,让大家可以学到更多知识。

(编辑:拼字网 - 核心网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!