MyISAM类型的表强调的是性能,但是不支持事务、及外部键等高级功能。

  1. MySQL默认采用的是MyISAM。
  2. MyISAM不支持事务,而InnoDB支持。InnoDB的AUTOCOMMIT默认是打开的,即每条SQL语句会默认被封装成一个事务,自动提交,这样会影响速度,所以最好是把多条SQL语句显示放在begin和commit之间,组成一个事务去提交。
  3. InnoDB支持数据行锁定,MyISAM不支持行锁定,只支持锁定整个表。即MyISAM同一个表上的读锁和写锁是互斥的,MyISAM并发读写时如果等待队列中既有读请求又有写请求,默认写请求的优先级高,即使读请求先到,所以MyISAM不适合于有大量查询和修改并存的情况,那样查询进程会长时间阻塞。因为MyISAM是锁表,所以某项读操作比较耗时会使其他写进程饿死。
  4. InnoDB支持外键,MyISAM不支持。
  5. InnoDB的主键范围更大,最大是MyISAM的2倍。
  6. InnoDB不支持全文索引,而MyISAM支持。全文索引是指对char、varchar和text中的每个词(停用词除外)建立倒排序索引。MyISAM的全文索引其实没啥用,因为它不支持中文分词,必须由使用者分词后加入空格再写到数据表里,而且少于4个汉字的词会和停用词一样被忽略掉。
  7. MyISAM支持GIS数据,InnoDB不支持。即MyISAM支持以下空间数据对象:Point,Line,Polygon,Surface等。
  8. 没有where的count(*)使用MyISAM要比InnoDB快得多。因为MyISAM内置了一个计数器,count(*)时它直接从计数器中读,而InnoDB必须扫描全表。所以在InnoDB上执行count(*)时一般要伴随where,且where中要包含主键以外的索引列。为什么这里特别强调“主键以外”?因为InnoDB中primary index是和raw data存放在一起的,而secondary index则是单独存放,然后有个指针指向primary key。所以只是count(*)的话使用secondary index扫描更快,而primary key则主要在扫描索引同时要返回raw data时的作用较大。

MyISAM 和InnoDB 的区别.(存储,索引, 事务, 锁)相关推荐

  1. Mysql存储引擎详解(MyISAM与InnoDB的区别)

    Mysql存储引擎详解(MyISAM与InnoDB的区别) 存储引擎     MySQL中的数据用各种不同的技术存储在文件(或者内存)中.这些技术中的每一种技术都使用不同的存储机制.索引技巧.锁定水平 ...

  2. MySQL存储引擎MyISAM和InnoDB的区别

    需要完整版PDF面试文档可扫描左侧二维码拿! 你都工作3年了,怎么还不知道MyISAM和InnoDB有什么区别?一位粉丝被面试官这样一个问题.当时,这位粉丝直接回复"不知道",这位 ...

  3. 【myISAM和innoDB】mySql的引擎myisam和innodb的区别/mysiam(mysql插入速度优化)

    目录 Myisam 和Innodb 特点和擅长 Myisam 和Innodb 数据存储区别 Myisam引擎(非聚集索引--叶子节点存储数据地址的指针) Innodb引擎(聚集索引---叶子节点的da ...

  4. MyISAM和InnoDB的区别

    MyISAM和InnoDB的区别 mysql5.5版本后将InnoDB作为默认的存储引擎,之前都是用MyISAM,两种的区别在于以下五点: 1.数据的存储结构不同 MyISAM有三个文件: .frm: ...

  5. MyISAM 和 InnoDB 的区别

    MyISAM 和 InnoDB 的区别 MySQL 5.5 之前,MyISAM 引擎是 MySQL 的默认存储引擎,可谓是风光一时.虽然,MyISAM 的性能还行,各种特性也还不错(比如全文索引.压缩 ...

  6. mysql and常用引擎_MySQL两大常用存储引擎MyISAM,InnoDB的区别

    本文主要整理了MySQL两大常用的存储引擎MyISAM,InnoDB的六大常见区别,来源于Mysql手册以及互联网的资料 InnoDB与Myisam的六大区别 MyISAM InnoDB 构 成上的区 ...

  7. MySQL中myisam和innodb的主键索引有什么区别?

    MyISAM引擎使用B+Tree作为索引结构,叶节点的data域存放的是数据记录的地址.下图是MyISAM索引的原理图: 这里设表一共有三列,假设我们以Col1为主键,则上图是一个MyISAM表的主索 ...

  8. mysql myisam 主键关联_MySQL中myisam和innodb的主键索引有什么区别?

    MyISAM引擎使用B+Tree作为索引结构,叶节点的data域存放的是数据记录的地址.下图是MyISAM索引的原理图: 这里设表一共有三列,假设我们以Col1为主键,则上图是一个MyISAM表的主索 ...

  9. MySQL 数据存储和优化------MySQL架构原理 ---- (架构---索引---事务---锁---集群---性能---分库分表---实战---运维)持续更新

    Mysql架构体系全系列文章主目录(进不去说明还没写完)https://blog.csdn.net/grd_java/article/details/123033016 本文只是整个系列笔记的第一章: ...

最新文章

  1. c++ include 路径_头文件中,#include使用引号“”和尖括号lt;gt;有什么区别?
  2. 16 系统测试之功能测试
  3. 三菱工业机器人rv6s_FANUC机器人控制器—维护三要素
  4. python 单通道转3通道
  5. 【转】调试JavaScript 错误的解决方案
  6. 测试socket udp 单次传输数据上限(sendto()函数data不能超过65507字节。udp头占8字节,ip头占20字节,加起来正好65535字节)
  7. C# 模拟鼠标移动与点击
  8. 你会使用回调函数吗?
  9. win7卸载java_Win7彻底卸载Oracle 11g图文步骤(靠谱)
  10. 扎实的基础知识、高质量的代码
  11. MessageDAL
  12. Java中String做为synchronized同步锁
  13. 科大讯飞发布第三季度业绩报告:扣非净利润同比减少近9成
  14. bzoj2151: 种树
  15. iOS开发之NSURLSession/NSURLConnection HTTP load failed 的解决办法
  16. !!终于把【库存管理的大致功能完成了!】
  17. 开发环境、生产环境、测试环境的基本理解和区别
  18. ipv6 华为交换机 路由配置_华为交换机 01-08 IPv6 DNS配置
  19. python股票网格交易法详解_详解网格交易法
  20. 中国首个数字化糖尿病逆转项目在宁波正式启动

热门文章

  1. 结构光三维重建Projector-Camera Calibration投影仪相机标定
  2. 随时更新———个人喜欢的关于模式识别、机器学习、推荐系统、图像特征、深度学习、数值计算、目标跟踪等方面个人主页及博客
  3. 动态规划—01背包问题
  4. 简单聊聊Glide的内存缓存
  5. MYSQLl数据库 表的操作
  6. 问题一:使用AndroidDriver而非原来的AppiumDriver的原因
  7. tf.contrib.slim add_arg_scope
  8. OpenStack从入门到放弃
  9. poj3421 X-factor Chains
  10. Android Animation学习(六) View Animation介绍