本节将介绍如何根据不同的应用场景去选择合适的存储引擎。

在使用 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存储引擎相关推荐

  1. MySQL存储引擎精讲(附带各种存储引擎的对比)

    接下来介绍一下存储引擎的基本概念.MySQL 支持的存储引擎.存储引擎的选择以及操作默认存储引擎. 什么是存储引擎 数据库存储引擎是数据库底层软件组件,数据库管理系统使用数据引擎进行创建.查询.更新和 ...

  2. mysql 储存引擎_详解mysql存储引擎的标准

    浅谈选择mysql存储引擎的标准 主要存储引擎的介绍 1.InnoDB存储引擎 InnoDB是MySQL的默认事务型引擎,它被设计用来处理大量的短期(short-lived)事务.除非有非常特别的原因 ...

  3. mysql存储引擎memory,ndb,innodb之选择

    1 mysql的innodb和cluster的NDB引擎都支持事务,在有共同的特性外,也有不同之处: 以mysql cluster NDB 7.3和MySQL 5.6之InnoDB为例: ndb7.3 ...

  4. mysql 存储引擎的选择_MySQL学习笔记(四):存储引擎的选择

    一:几种常用存储引擎汇总表 二:如何选择 一句话:除非需要InnoDB 不具备的特性,并且没有其他办法替代,否则都应该优先考虑InnoDB:或者,不需要InnoDB的特性,并且其他的引擎更加合适当前情 ...

  5. mysql存储引擎静态表_MySQL存储引擎(表类型)的选择

    一.MySQL存储引擎概述 MySQL与多数数据库不同的是包含存储引擎这一特性,用户可以根据应用的需要选择合适的存储引擎来使存储和索引数据,以及是否使用事务等.MySQL5.0支持的存储引擎包括MyI ...

  6. 【超简单】MySQL存储引擎的选择与配置

    [超简单]MySQL存储引擎的选择与配置 存储引擎简介 MySQL中的数据用各种不同的技术存储在文件(或内存)中.每一种技术都使用不同的存储机构,索引技巧,锁定水平并且最终提供广泛的不同的功能和能力. ...

  7. 浅谈MySQL存储引擎选择 InnoDB还是MyISAM

    如果是一些小型的应用或项目,那么MyISAM 也许会更适合.当然,在大型的环境下使用MyISAM 也会有很大成功的时候,但却不总是这样的.如果你正在计划使用一个超大数据量的项目,那么你应该直接使用In ...

  8. 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 ...

  9. MySQL 存储引擎和锁

    MySQL 存储引擎和锁 =============================================================================== 存储引擎:   ...

最新文章

  1. 【opencv】(4) 形态学处理:腐蚀膨胀、梯度运算、礼帽黑帽
  2. 为何python不好找工作k-Python这么火,为何有人说Python不好找工作?
  3. 【项目实战课】快速上手目标检测任务,MMdetection框架详细解读与案例实战
  4. springmvc 中controller与jsp传值
  5. Java黑皮书课后题第5章:*5.1(统计正数和负数的个数然后计算这些数的平均值)编写程序,读入未指定个数的整数,判断读入的正数有多少个、负数有多少个,然后计算输入值的总和和平均值(不记0,浮点表示)
  6. IT基础结构-1.DC-DNS-安装
  7. 什么是 SAP Commerce Cloud 的 catalog
  8. java学习(74):GUL面板
  9. python 进程池
  10. 98 年“后浪”科学家,首次挑战图片翻转不变性假设,一作拿下 CVPR 最佳论文提名​...
  11. ASP经典分页类(改良后的分页类主要是显示属性)
  12. paramiko 遭遇socket.error: Socket is closed 错误的解决办法
  13. LoggerFactory.getLogger
  14. 智慧医院信息化建设(整体解决方案)
  15. 破解中兴ZXV10 H108L电信猫超级密码,附赠破解路由限制
  16. FPGA中数电基础知识
  17. WINDOWS2008server安全策略设置
  18. oracle rac 停机,RAC停机重启方案
  19. HTML制作虾米音乐,最新虾米音乐电台调用代码
  20. 创业项目融资似乎很容易。而事实上,真正创业拿到融资的项目连1%都不到。

热门文章

  1. BlockChain:《Blockchain Gate》听课笔记——区块链的共识机制—简介、理解、畅谈
  2. English:daydayup
  3. tf.clip_by_global_norm理解
  4. OS_CORE.C(2)
  5. C#事件与委托的区别
  6. 『转载』在vs2008(2005)winform中,打开office文档
  7. 1154:LETTERS
  8. Jenkins构建自动化脚本执行无界面解决方法
  9. 设计模式之职责链模式永不罢休(二十一)
  10. 静态方法和实例化方法的区别 -转载