当前位置:首页 > 西部百科 > 正文内容

mysql存储引擎区别(mysql有哪些存储引擎,各自优缺点)

2023-05-23 13:06:05西部百科1

mysql有哪些存储引擎,各自优缺点

​MySQL5.7支持的存储引擎包含 : InnoDB 、MyISAM 、BDB、MEMORY、MERGE、EXAMPLE、NDB Cluster、ARCHIVE、CSV、BLACKHOLE、FEDERATED等。

其中InnoDB和BDB提供事务安全表,其他存储引擎是非事务安全表。Mysql5.5之前的默认存储引擎是MyISAM,5.5之后改为InnoDB。

mysql存储引擎包括

mysql的InnoDB存储引擎支持事务处理,支持外键和并发系统。

InnoDB存储引擎:

InnoDB是事务型数据库的首选引擎,支持事务安全表(ACID),其它存储引擎都是非事务安全表,支持行锁定和外键,MySQL5.5以后默认使用InnoDB存储引擎。

支持事务处理,支持外键,支持崩溃修复能力和并发控制。如果需要对事务的完整性要求比较高(比如银行),要求实现并发控制(比如售票),那选择InnoDB有很大的优势。如果需要频繁的更新、删除操作的数据库,也可以选择InnoDB,因为支持事务的提交(commit)和回滚(rollback)。

mysql几种存储引擎

MyISAM引擎设计简单,数据以紧密格式存储,所以某些读取场景下性能很好。

但是MyISAM最典型的还是表锁问题,这样会导致长期处于"Locked"状态。而且数据恢复时间长,无事务等问题或短板。

虽然5.1之前MyISAM的读比Innodb快很多,但是在5.1之后,默认引擎已经变为Innodb。

Innodb读写有很大的提高,采用MVCC来支持高并发,针对行加锁,是使用最广泛的存储引擎。

官方建议尽量将MyISAM都换为Innodb。

mysql存储引擎有几种

mysql默认引擎:mysql-5.1版本之前默认引擎是MyISAM,之后是innoDB

MyISAM是非集聚引擎,支持全文索引;不支持事务;它是表级锁;会保存表的具体行数.

  innoDB是集聚引擎,5.6以后才有全文索引;支持事务;它是行级锁;不会保存表的具体行数.

一般:不用事务的时候,count计算多的时候适合myisam引擎。对可靠性要求高就是用innodby引擎。

mysql常用的存储引擎

系统的主储存模块引擎,可以将所有数据进行内存的保存和转移

mysql的存储引擎有哪些,区别是什么

1.mysql支持多种存储引擎,存储引擎选择较为灵活,实际上一般都在用innodb。ddl放在server端,ddl语句的事物性支持较差,可能出现server级数据库丢失。pg的server稳定性更好

2 mysql数据存储结构为聚簇索引,通过主键查询效率较高,但是有很多局限性,比如插入只能顺序插入。不太适合超大数据非主键查询,访问二级索引需要回表。pg采用堆表存储数据,能够支持更大的数据量

3 pg不支持分区表,通过继承表的形式达到分区表的目的,在分区较多成千上万时,pg的继承表效率较差

4 mysql有间隙锁, postgresql数据库执行delete操作后,表中的记录只是被标示为删除状态,并没有释放空间,在以后的update或insert操作中该部分的空间是不能够被重用,VACUUM作用是删除那些已经标示为删除的数据并释放空间,vacuum需要定期运行,比较消耗IO

5 pg支持的数据类型(如gis),分析函数支持更多,还支持面向对象数据库。有更多的第三方开源工具辅助系统设计和实现

6pg支持存储过程和执行计划缓存,表连接和复杂查询能力更强。mysql优化器,运算符都较简单,适合简单的查询操作

7 pg主从采用wal日志物理同步,mysql使用binlog逻辑同步。物理同步可靠性更高,复制性能更高。

8 mysql仅支持嵌套循环表连接(8.0支持hash连接),pg支持nl,hash,merge join

9 mysql适用应用逻辑简单,轻数据存储和计算的场景,pg适合复杂的数据分析和特殊应用场景

mysql存储引擎的特点

1. ACID(原子性、一致性、隔离性、持久性)特性2. 支持行级锁定,提高了并发操作的效率3. 支持外键,可以保证数据的完整性4. 支持MVCC(多版本并发控制)机制,读操作不会被写锁阻塞InnoDB具有ACID特性、支持行级锁定、外键和MVCC机制四大特性。InnoDB是MySQL中一个流行的存储引擎,具有这四大特性,从而使得其在高并发、事务性较强的应用场景中得到广泛应用和高度评价。除了以上四大特性,InnoDB还具备了自适应哈希索引、预读和缓冲池等独特特性,从而使其进一步提高了对读操作的效率和性能。

mysql常用的存储引擎及特点

在当前的后台开发中,MySQL应用非常普遍,企业在选拔Java人才时也会考察求职者诸如性能优化、高可用性、备份、集群、负载均衡、读写分离等问题。想要成为高薪Java工程师,一定要熟练掌握MySQL,接下来给大家分享MySQL数据库应用场景知识。

1、单Master

单Master的情况是普遍存在的,对于很多个人站点、初创公司、小型内部系统,考虑到成本、更新频率、系统重要性等问题,系统只依赖一个单例数据库提供服务,基本上已经满足需求。单Master场景下应该关注四点:数据备份(冷备、热备、温备)、数据还原、备份监控、数据文件远程存储。

2、一主一从

考虑一主一从的多数初衷是系统性能和系统高可用性问题,除了单Master场景中的备份工作需要做好以外,还有性能优化、读写分离、负载均衡三项重点工作需要考虑。

3、一主n从

一旦开始考虑一主多从的服务器架构,则证明你的系统对可用性、一致性、性能中一种或者多种的要求比较高。好多系统在开始搭建的时候都会往这个方向看齐,这样“看起来”系统会健壮很多。一主n从关注的重点是:数据一致性、脑裂、雪崩、连接池管理。

4、横向集群

横向集群主要是从业务特性的角度对系统进行切分,最彻底就是切分成了各个子系统,子系统之间通过一些数据同步的方案来把一些核心数据进行共享,以避免跨库调用Join。然后是各种系统接口调用,把大事务拆成小事务,事务之间做好隔离和同步。横向集群学习的重点是表路由、跨库Join、分布式事务。

5、纵向集群

横向集群的切分思路最终是切分子系统,而纵向集群最后遇到的最棘手的问题是扩缩容。纵向集群学习的重点是库路由、分布式主键、扩/缩容。

6、混合模式

混合模式是对以上5种场景中的一个总结,将每个场景中的重点、问题点考虑全了,混合模式下的问题就不是问题。

除了要掌握MySQL数据库知识,Java工程师更要掌握专业的技能,比如面向对象、Java常用的类、库等。

本网站文章仅供交流学习 ,不作为商用, 版权归属原作者,部分文章推送时未能及时与原作者取得联系,若来源标注错误或侵犯到您的权益烦请告知,我们将立即删除.

本文链接:https://www.xibujisuan.cn/98858506.html

返回列表

上一篇:空调如何保养(空调如何保养外机)

没有最新的文章了...