博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
mysql存储引擎简析
阅读量:5901 次
发布时间:2019-06-19

本文共 982 字,大约阅读时间需要 3 分钟。

一、常见存储引擎特性

Innodb

    具有提交、回滚和崩溃恢复能力的事务安全、支持外键。使用mvcc以及行锁来提供事务支持,因此支持高并发。适用于写频繁,并发率高的应用。

Myisam

    不支持事务和灾难自动恢复,但其访问速度快,支持全文索引,对事务完整性没有要求。 通常用于读频繁的数据库,如数据仓库等。

 

Memory

使用存在内存中的内容来创建表,表访问非常得快,因为它的数据是放在内存中的,并且默认使用HASH索引。但是一旦服务关闭,表中的数据就会丢失掉。 。适用于临时的,需要频繁读写,对性能速度要求严格的应用中,如一些统计操作的中间结果表

 

 

二、选择存储引擎时需要考虑的因素

并发

如果最好的满足你的并发性需求取决你的工作量了。如果你仅仅是并发的插入和读取。不管相信与否 ,MyISAM是最好的了。如果你让这些操作互不干扰,就应该选择一个支持行锁的引擎。某些应用程序比其他应用程序具有很多的颗粒级锁定要求(如行级锁定)。选择正确的锁定策略能够减少开销,并有助于整体性能的提升。它还包括对多种能力的支持,如多版本并发性控制或“快照”读取

 

事务支持:

并非所有的应用程序都需要事务,但对的确需要事务的应用程序来说,有着定义良好的需求,如ACID兼容等。

 

备份

有规律的备份也影响表的引擎选择。如果服务器关闭,并且定期的备份,存储引擎很容易处理。如果 你需要在线备份并从一个格式转换为另一个。这个选择就不明智了。以后会详细说这部分。

要考虑多引擎所引起的备份和服务器调整的复杂性。

错误恢复

如果你有很多数据,你要考虑错误恢复的时间。MyISAM相对于InnoDB非常容易崩溃而且从崩溃中恢复的时间非常慢,这就是为什么有的人即使不使用事务处理也要用InnoDB了。

特殊功能

最终,你可能发现有的应用需要依靠一些MySQL存储引擎特殊的功能和优化,举个例子,有的应用程序 非常依赖于集群的索引优化。这时候,你只能在InnoDB和solidDB选择了。另一方面,只有MyISAM支持全 文索引。如果一个存储引擎遇到了一个或多个苛刻的需求,对于其他并不算是,那么你就要选一个折中的 方案或者找到一个好的解决方案。通常你能从看上去不满足你的需求的存储引擎,找到你所需要的。

转载于:https://www.cnblogs.com/Cherie/p/3309329.html

你可能感兴趣的文章
非微信内如何调起wap版微信支付
查看>>
统计输入的单词中有几个长度大于n的,n是自己指定的,用函数对象实现
查看>>
毕业课题之------------车辆阴影特征检測的两种方法
查看>>
HDU4499 Cannon DFS 回溯的应用
查看>>
线程的五大状态
查看>>
LINQ操作符四:排序操作符
查看>>
mysql 字面值
查看>>
公钥和私钥
查看>>
ibatis 中isNull, isNotNull与isEmpty, isNotEmpty区别
查看>>
python接口自动化8-参数化
查看>>
Atitit.软件开发概念(11)--网络子系统--url编码 空格问题URLEncoder java js php
查看>>
【原理】Java的ThreadLocal实现原理浅读
查看>>
python gpio
查看>>
[C++设计模式] iterator 迭代器模式
查看>>
ScrollView反弹效果的实现
查看>>
Mybatis 增强工具包 Mybatis-Plus
查看>>
ListView的动态刷新问题——用notifyDataSetChanged没作用
查看>>
图解 HTTP 协议
查看>>
EventBus猜想 ----手把手带你自己实现一个EventBus
查看>>
2.11 确定运行计划
查看>>