博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
MySQL两种引擎的比较
阅读量:4549 次
发布时间:2019-06-08

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

MyISAM,InnoDB主要区别:

  1.MyISAM是非事物安全的,InnoDB是事物安全的。

    事物安全的特点为更安全,遇到问题会自动恢复或从备份加事物日志回复,如果更新失败,你的所有改变都变回原来。

    非事物安全的优点为更快,所需的磁盘空间更小,执行更新时需要的内存更小,但是所有发生的改变都是永久的。

  2.MyISAM锁的粒度是表级的,InnoDB支持行级锁以及表级,默认情况下是采用行级锁。

    数据库引擎具有多粒度锁定,允许一个事务锁定不同类型的资源。 为了尽量减少锁定的开销,数据库引擎自动将资源锁定在适合任务的级别。 锁定在较小的粒度(例如行)可以提高并发度,但开销较高,因为如果锁定了许多行,则需要持有更多的锁。 锁定在较大的粒度(例如表)会降低了并发度,因为锁定整个表限制了其他事务对表中任意部分的访问。 但其开销较低,因为需要维护的锁较少。

  3.MyISAM支持全文类型索引,InnoDB不支持(之前

    mysql索引有四种类型:主键索引、唯一索引、普通索引和全文索引。通过给字段添加索引可以提高数据的读取速度,提高项目的并发能力和抗压能力。索引优化是mysql中的一种优化方式。索引的作用相当于图书的目录,可以根据目录中的页码快速找到所需的内容。

    主键索引: 主键是一种唯一性索引,但它必须指定为PRIMARY KEY,每个表只能有一个主键。

    唯一索引: 索引列的所有值都只能出现一次,即必须唯一,值可以为空。

    普通索引 : 基本的索引类型,值可以为空,没有唯一性的限制。 

    全文索引: 全文索引的索引类型为FULLTEXT。全文索引可以在varchar、char、text类型的列上创建。可以通过ALTER TABLE或CREATE INDEX命令创建。对于大规模的数据集,通过ALTER TABLE(或者CREATE INDEX)命令创建全文索引要比把记录插入带有全文索引的空表更快。MyISAM支持全文索引,InnoDB在mysql5.6之后支持了全文索引。

  4.InnoDB支持外键,MyISAM不支持。

应用场景(简单概括):

  MyISAM管理非事物表,提供高速存储和检索以及全文搜索的能力,如果在应用中执行大量的select操作,应选用MyISAM。

  InnoDB用于事物处理,具有ACID(原子性,一致性,隔离性,持久性)事物支持等特性,如果在应用中大量使用insert和update操作,应选用InnoDB。

  当然具体的选用还是要看具体的项目需求来定,不能简单的只看这几个方面。

posted on
2018-04-03 01:09 阅读(
...) 评论(
...)

转载于:https://www.cnblogs.com/zlnevsto/p/8700903.html

你可能感兴趣的文章
Java Web项目移植
查看>>
11月的第一天
查看>>
2011简单总结
查看>>
android的Environment类,记录一下
查看>>
工作流Activiti5流程变量 任务变量 setVariables 跟 setVariablesLocal区别
查看>>
c语言诊断_断言库函数#include<assert.h>
查看>>
input type="file"获取文件名方法
查看>>
强力上攻后,缓解期结束,MACD死叉的案例
查看>>
Linux文件权限
查看>>
js替换字符串中特殊字符
查看>>
第一单元OO总结
查看>>
sqlserver中的数据转换与子查询
查看>>
【CF316G3】Good Substrings 后缀自动机
查看>>
【BZOJ2938】[Poi2000]病毒 AC自动机+DFS
查看>>
【BZOJ4750】密码安全 单调栈
查看>>
Java之atomic包的原理及分析
查看>>
Chrome自定义滚动条
查看>>
poj3311(状态压缩dp)
查看>>
《大数据日知录》读书笔记-ch2数据复制与一致性
查看>>
个人冲刺01
查看>>