15、如何选择MySQL存储引擎
本节将介绍如何根据不同的应用场景去选择合适的存储引擎。
在使用 MySQL 数据库管理系统时,选择一个合适的存储引擎是一个非常复杂的问题。不同的存储引擎都有各自的特性、优势和使用的场合,正确的选择存储引擎可以提高应用的使用效率。
为了能够正确地选择存储引擎,必须掌握各种存储引擎的特性。下面重点介绍几种常用的存储引擎,它们对各种特性的支持如下表所示。
表中主要介绍了 MyISAM、InnoDB 和 MEMORY 三种存储引擎特性的对比。下面详细介绍这 3 个存储引擎的应用场合并给出相应的建议。
1) MyISAM(少量更新和删除)
在 MySQL 5.1 版本及之前的版本,MyISAM 是默认的存储引擎。
MyISAM 存储引擎不支持事务和外键,所以访问速度比较快。
如果应用主要以读取和写入为主,只有少量的更新和删除操作,并且对事务的完整性、并发性要求不是很高,那么选择 MyISAM 存储引擎是非常适合的。
MyISAM 是在 Web 数据仓储和其他应用环境下最常使用的存储引擎之一。
2) InnoDB(事务)
MySQL 5.5 版本之后默认的事务型引擎修改为 InnoDB。
InnoDB 存储引擎在事务上具有优势,即支持具有提交、回滚和崩溃恢复能力的事务安装,所以比 MyISAM 存储引擎占用更多的磁盘空间。
如果应用对事务的完整性有比较高的要求,在并发条件下要求数据的一致性,数据操作除了插入和查询以外,还包括很多的更新、删除操作,那么 InnoDB 存储引擎是比较合适的选择。
InnoDB 存储引擎除了可以有效地降低由于删除和更新导致的锁定,还可以确保事务的完整提交(Commit)和回滚(Rollback),对于类似计费系统或者财务系统等对数据准确性要求比较高的系统,InnoDB 都是合适的选择。
3) MEMORY(快速访问)
MEMORY 存储引擎将所有数据保存在 RAM 中,所以该存储引擎的数据访问速度快,但是安全上没有保障。
MEMORY 对表的大小有限制,太大的表无法缓存在内存中。由于使用 MEMORY 存储引擎没有安全保障,所以要确保数据库异常终止后表中的数据可以恢复。
如果应用中涉及数据比较少,且需要进行快速访问,则适合使用 MEMORY 存储引擎。
总结
不同应用的特点是千差万别的,选择适应存储引擎才是最佳方案也不是绝对的,这需要根据实际应用进行测试,从而得到最适合的结果。
15、如何选择MySQL存储引擎相关推荐
- MySQL存储引擎精讲(附带各种存储引擎的对比)
接下来介绍一下存储引擎的基本概念.MySQL 支持的存储引擎.存储引擎的选择以及操作默认存储引擎. 什么是存储引擎 数据库存储引擎是数据库底层软件组件,数据库管理系统使用数据引擎进行创建.查询.更新和 ...
- mysql 储存引擎_详解mysql存储引擎的标准
浅谈选择mysql存储引擎的标准 主要存储引擎的介绍 1.InnoDB存储引擎 InnoDB是MySQL的默认事务型引擎,它被设计用来处理大量的短期(short-lived)事务.除非有非常特别的原因 ...
- mysql存储引擎memory,ndb,innodb之选择
1 mysql的innodb和cluster的NDB引擎都支持事务,在有共同的特性外,也有不同之处: 以mysql cluster NDB 7.3和MySQL 5.6之InnoDB为例: ndb7.3 ...
- mysql 存储引擎的选择_MySQL学习笔记(四):存储引擎的选择
一:几种常用存储引擎汇总表 二:如何选择 一句话:除非需要InnoDB 不具备的特性,并且没有其他办法替代,否则都应该优先考虑InnoDB:或者,不需要InnoDB的特性,并且其他的引擎更加合适当前情 ...
- mysql存储引擎静态表_MySQL存储引擎(表类型)的选择
一.MySQL存储引擎概述 MySQL与多数数据库不同的是包含存储引擎这一特性,用户可以根据应用的需要选择合适的存储引擎来使存储和索引数据,以及是否使用事务等.MySQL5.0支持的存储引擎包括MyI ...
- 【超简单】MySQL存储引擎的选择与配置
[超简单]MySQL存储引擎的选择与配置 存储引擎简介 MySQL中的数据用各种不同的技术存储在文件(或内存)中.每一种技术都使用不同的存储机构,索引技巧,锁定水平并且最终提供广泛的不同的功能和能力. ...
- 浅谈MySQL存储引擎选择 InnoDB还是MyISAM
如果是一些小型的应用或项目,那么MyISAM 也许会更适合.当然,在大型的环境下使用MyISAM 也会有很大成功的时候,但却不总是这样的.如果你正在计划使用一个超大数据量的项目,那么你应该直接使用In ...
- mysql dba系统学习(20)mysql存储引擎MyISAM
mysql存储引擎MyISAM 1,创建myisam表 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 mysql> creat ...
- MySQL 存储引擎和锁
MySQL 存储引擎和锁 =============================================================================== 存储引擎: ...
最新文章
- 【opencv】(4) 形态学处理:腐蚀膨胀、梯度运算、礼帽黑帽
- 为何python不好找工作k-Python这么火,为何有人说Python不好找工作?
- 【项目实战课】快速上手目标检测任务,MMdetection框架详细解读与案例实战
- springmvc 中controller与jsp传值
- Java黑皮书课后题第5章:*5.1(统计正数和负数的个数然后计算这些数的平均值)编写程序,读入未指定个数的整数,判断读入的正数有多少个、负数有多少个,然后计算输入值的总和和平均值(不记0,浮点表示)
- IT基础结构-1.DC-DNS-安装
- 什么是 SAP Commerce Cloud 的 catalog
- java学习(74):GUL面板
- python 进程池
- 98 年“后浪”科学家,首次挑战图片翻转不变性假设,一作拿下 CVPR 最佳论文提名​...
- ASP经典分页类(改良后的分页类主要是显示属性)
- paramiko 遭遇socket.error: Socket is closed 错误的解决办法
- LoggerFactory.getLogger
- 智慧医院信息化建设(整体解决方案)
- 破解中兴ZXV10 H108L电信猫超级密码,附赠破解路由限制
- FPGA中数电基础知识
- WINDOWS2008server安全策略设置
- oracle rac 停机,RAC停机重启方案
- HTML制作虾米音乐,最新虾米音乐电台调用代码
- 创业项目融资似乎很容易。而事实上,真正创业拿到融资的项目连1%都不到。
热门文章
- BlockChain:《Blockchain Gate》听课笔记——区块链的共识机制—简介、理解、畅谈
- English:daydayup
- tf.clip_by_global_norm理解
- OS_CORE.C(2)
- C#事件与委托的区别
- 『转载』在vs2008(2005)winform中,打开office文档
- 1154:LETTERS
- Jenkins构建自动化脚本执行无界面解决方法
- 设计模式之职责链模式永不罢休(二十一)
- 静态方法和实例化方法的区别 -转载