mysql 数据存储引擎区别

一,存储类型

    

二 , MyISAM默认存储引擎

    MyISAM 管理非事务表、是ISAM 的扩展格式。除了提供ISAM里所没有的索引的字段管理等的大量功能、MyISAM 还使用一种表格锁定的机制、来优化多个并发的读写操作。MyISAM 提供高速存储和检索、以及全文搜索能力;在MYSQL5.5.5版本及以下的所有MYSQL配置里被支持。也是默认的存储引擎。

  特性:

  1:不支持事务、不具备AICD特性(原子性、一致性、分离性、永久性);

  2:表级别锁定形式(更新数据时锁定整个表、这样虽然可以让锁定的实现成本很小但是同时大大降低了其并发的性能);

  3:读写相互阻塞(不仅会在写入的时候阻塞读取、还会在读取的时候阻塞写入、但是读取不会阻塞读取);

  4:只会缓存索引(myisam通过key_buffer_size来设置缓存索引,提高访问性能较少磁盘IO的压力、但是只缓存索引、不缓存数据);

  5:读取速度快、占用资源比较少;

  6:不支持外键约束、只支持全文检索;

  7:是MySQL5.5.5版本之前的默认存储引擎;

  应用场景:

  1:不需要事务支持的场景;

  2:读多或者写多的单一业务场景、读写频繁的则不适合、会阻塞;

  3:读写并发访问较低的业务;

  4:数据修改相对较少的业务;

  5:以读为主的业务(如博客、图片信息数据库、用户数据库等);

  6:对数据的一致性要求不是很高的业务;

  7:服务器硬件资源相对比较差的机器;

  调优精要:

  1:设置合适的索引(缓存机制);

  2:调整读写优先权限、根据业务需求、确保重要操作更有执行权限;

  3:启用延时插入(尽量批量插入、降低写的频率);

  4:写数据的时候、顺序操作、让insert数据都写入到尾部、减少阻塞;

  5:分解大的时间长的操作、降低单个操作的阻塞时间;

  6:降低并发数(减少数据库的访问、高并发场景的话、可以使用队列机制);

  7:对于静态更新不频繁的数据库数据、充分利用Query Cache或者Memcached缓存服务、极大可能的提高访问效率;

  8:count的时候、只有count(*)会直接返回行数、才是效率最高的;带有where条件的count都需要进行全部数据的访问;

  9:可以配置主从数据库的时候、主数据库使用InnoDB、从数据库使用MyISAM、进行读写分离;

  存储:

  在存储的时候、每一个MyISAM的表都对应硬盘上的三个文件(同一文件名、不同扩展名):

  .frm:保存表的定义、这个文件不是MyISAM引擎的一部分、是数据库服务器的一部分;

  .MYD:保存表的数据;

  .MYI:保存表的索引文件;

  (.MYD 和 .MYI 是MyISAM 的关健点 )

原文地址:https://www.cnblogs.com/kingle-study/p/9951519.html

时间: 2024-10-04 15:59:06

mysql 数据存储引擎区别的相关文章

mysql数据库存储引擎及区别

MySQL有多种存储引擎,每种存储引擎有各自的优缺点,可以择优选择使用:MyISAM.InnoDB.MERGE.MEMORY(HEAP).BDB(BerkeleyDB).EXAMPLE.FEDERATED.ARCHIVE.CSV.BLACKHOLE. mysql的存储引擎包括:MyISAM.InnoDB.BDB.MEMORY.MERGE.EXAMPLE.NDBCluster.ARCHIVE.CSV.BLACKHOLE.FEDERATED等,其中InnoDB和BDB提供事务安全表,其他存储引擎都是

MySQL数据库存储引擎

MySQL数据库存储引擎 MySQL数据库是一种关系型数据库,数据时存放在数据库中的一张一张的表中的,各个表之间或有关联,表中的每行相关,每列是不相关.这是关系型数据库的基本存储方式. MySQL存储引擎是为了在各种不同的条件下对数据存放的可靠性.关联性.读写等方面做出的一个可供选择的存储模式. 当前使用较多的MySQL存储引擎主要有以下几个,MyISAM,InnoDB,BdB,Memory等,这些存储引擎主要在以下几个方面有所区分,锁定水平.处理方式.存储方式和索引技巧方面有所不同. mysq

小贝_mysql 常见存储引擎区别

存储引擎区别 简要: 1.存储引擎 2.myisam与innodb区别 一.存储引擎 1.什么是存储引擎 通俗地讲就是存储和管理数据的方式 形象例子: 某处地方的自行车管理员:李某,张某.每天都有很多人来存取自行车.李某的管理方式是: 车主自行存放,李某也不记录对方存的是什么车.取车时则要交管理费.也不检查取的是否是对方自己的车.相反,张某,则在车主存放车时,记录存放人的特征以及对应车的信息.当人来取车时,张某还要小心核对,人与车的特征是否对应. 从上述例子可知: a.从效率的角度来看: 李某比

Mysql的存储引擎和索引

2 Mysql的存储引擎和索引 可以说数据库必须有索引,没有索引则检索过程变成了顺序查找,O(n)的时间复杂度几乎是不能忍受的.我们非常容易想象出一个只有单关键字组成的表如何使用B+树进行索引,只要将关键字存储到树的节点即可.当数据库一条记录里包含多个字段时,一棵B+树就只能存储主键,如果检索的是非主键字段,则主键索引失去作用,又变成顺序查找了.这时应该在第二个要检索的列上建立第二套索引.  这个索引由独立的B+树来组织.有两种常见的方法可以解决多个B+树访问同一套表数据的问题,一种叫做聚簇索引

Mysql运维管理-MySQL数据库存储引擎知识19

1.MySQL 引擎概述 1.1 什么是存储引擎 我们在录制一个视频文件的时候,可以转换成不同的格式如mp4,avi,wmv等,而且在电脑的磁盘上也会存在于不同类型的文件系统windows里常见的ntfs,fat32,存在于linux操作系统里常见的ext3,ext4,xfs.但是跟我们呈现的内容都是一样的,直观的区别是占用系统空间的大小与清晰程度不一样.那么数据库存储引擎也有很多种存储方式.无论用什么存储引擎来存储,用户看到的数据都是一样的.不同的引擎存储,引擎功能,占用的空间的大小,读取性能

INNODB与MyISAM两种表存储引擎区别

mysql数据库分类为INNODB为MyISAM两种表存储引擎了,两种各有优化在不同类型网站可能选择不同,下面小编为各位介绍mysql更改表引擎INNODB为MyISAM技巧. 常见的mysql表引擎有INNODB和MyISAM,主要的区别是INNODB适合频繁写数据库操作,MyISAM适合读取数据库的情况多一点,如何把表引擎INNODB更改为MyISAM呢? 使用以下mysql sql语句,可以给表设定数据库引擎: ALTER TABLE `wp_posts` ENGINE = MyISAM;

如何选择mysql的存储引擎

如何选择mysql的存储引擎 在开发中,我们经常使用的存储引擎 myisam / innodb/ memory myisam 存储: 如果表对事务要求不高,同时是以查询和添加为主的,我们考虑使用myisam存储引擎. ,比如 bbs 中的 发帖表,回复表. INNODB 存储: 对事务要求高,保存的数据都是重要数据,我们建议使用INNODB,比如订单表,账号表. Memory 存储,比如我们数据变化频繁,不需要入库,同时又频繁的查询和修改,我们考虑使用memory, 速度极快. 问 MyISAM

数据存储引擎+数据类型

数据存储引擎:核心功能是存储数据 涉及到存储数据的代码 就称之为存储引擎需求场景的不同催生了不同的引擎类别 引擎的分类:innodb CSV blackhole memory 不同的引擎测试创建表时在最后指定引擎名称 engine = xxxcreate table t1(id int)engine=innodb 总结: innodb是默认的引擎 因为 它是永久存储 并且 支持事务,行锁,外键 创建表的完整语法create table 表名(字段名称 数据类型[(长度) 约束条件],字段名称 数

mysql 的存储引擎介绍

在数据库中存的就是一张张有着千丝万缕关系的表,所以表设计的好坏,将直接影响着整个数据库.而在设计表的时候,我们都会关注一个问题,使用什么存储引擎.等一下,存储引擎?什么是存储引擎? 什么是存储引擎? MySQL中的数据用各种不同的技术存储在文件(或者内存)中.这些技术中的每一种技术都使用不同的存储机制.索引技巧.锁定水平并且最终提供广泛的不同的功能和能力.通过选择不同的技术,你能够获得额外的速度或者功能,从而改善你的应用的整体功能. 例如,如果你在研究大量的临时数据,你也许需要使用内存MySQL