1.MySQL存储引擎

主要使用的就是两个存储引擎,分别是InnoDB和MyISAM。

InnoDB

InnoDB是MySQL的默认存储引擎。
InnoDB采用MVCC来支持高并发,并且实现了四个标准的隔离级别。默认的隔离级别是可重复读。通过间隙锁策略防止幻读的出现。
InnoDB表是基于聚簇索引建立的。聚簇索引对主键查询有很高的性能。
InnoDB内部做了很多优化。包括从磁盘读取数据时采用可预测性预读,能够自动在内存中创建Hash索引以加速读操作的自适应哈希索引,以及能够加速插入操作的插入缓冲区等。

MyISAM

MyISAM提供了大量的特性,包括全文索引、压缩、空间函数等,但MyISAM不支持事务和行级锁。
在MyISAM表,可以基于其前500个字符创建索引。MyISAM也支持全文索引,这是一种基于分词创建但索引,支持复杂但查询。
MyISAM引擎设计简单,数据以紧密格式存储,在某些场景下,性能很好。

InnoDB和MyISAM区别

  1. 是否支持事务
  • InnoDB支持事务
    对于InnoDB每一条SQL语言都默认封装成事务,自动提交,这样会影响速度,所以最好把多条SQL语言放在begin transaction和commit之间,组成一个事务;
  • MyISAM不支持,
  1. 支持锁的级别不同
  • InnoDB支持行锁
    注意:数据库的主键和索引对锁是有影响的。
    在使用for update的时候,在明确使用主键或者索引的时候才会是行锁,否则就是表锁。
  • MyISAM只支持表锁
  1. 是否支持外键
  • InnoDB支持外键
  • MyISAM不支持。
  • 4. 存放索引的方式

    • InnoDB是聚集索引,
      数据文件是和索引绑在一起的,必须要有主键,通过主键索引效率很高。但是辅助索引需要两次查询,先查询到主键,然后再通过主键查询到数据。
      因此,主键不应该过大,因为主键太大,其他索引也都会很大。
    • MyISAM是非聚集索引,数据文件是分离的,
      索引保存的是数据文件的指针。主键索引和辅助索引是独立的。
    1. 查询具体行数的差异
    • InnoDB不保存表的具体行数,执行select count(*) from table时需要全表扫描。
    • MyISAM用一个变量保存了整个表的行数,执行上述语句时只需要读出该变量即可,速度很快;
    1. 是否支持全文索引
    • Innodb不支持全文索引(innodb引擎在5.6.4版本提供了对全文索引的支持)
    • MyISAM支持全文索引,查询效率上MyISAM要高于Innodb;

最新文章

  1. RMAN还原32位数据库到64位实例的错误处理
  2. 冒泡排序 & 选择排序 & 插入排序 & 希尔排序 JavaScript 实现
  3. JVM & Server & Connector & Context Relationship
  4. 7.6--找过点最多的直线(CC150)
  5. VC++ 判断当前系统为32位还是64位
  6. Excel 代码
  7. 使用RedisTemplate的操作类访问Redis(转)
  8. Entity Framework 安装出现问题
  9. pom.xml第一行报错
  10. Android 之Activity切换动画效果
  11. sublime 3 增加php开发插件
  12. ios的虚拟键盘与fixed移动端的bug
  13. 『素数 Prime判定和线性欧拉筛法 The sieve of Euler』
  14. Leetcode 1-10
  15. 关于IWMS中遇到的问题及解决方法
  16. 【DWM1000】 code 解密1一 去掉Main 函数多余内容
  17. 拒绝服务(DoS)理解、防御与实现
  18. ELK 的插件安装(head)
  19. 【洛谷】P1357 花园(状压+矩阵快速幂)
  20. VMware Workstation unrecoverable error: (vmx)虚拟机挂起后无法启动问题

热门文章

  1. 解决WSL在执行32位程序时报错“Exec format error”的问题
  2. 201771010111-李瑞红 实验一 软件工程准备-<构建之法-现代软件工程-基础认识和理解>
  3. NBL小可爱纪念赛「 第一弹 」 游记(部分题解)
  4. 什么是DevOps ?
  5. 李宏毅老师机器学习课程笔记_ML Lecture 3-1: Gradient Descent
  6. thinkphp 路径 (纯转)
  7. Pandas和Numpy的一些金融相关的操作(一)
  8. “GANs”与“ODEs”:数学建模的终结?
  9. 《Flutter 动画系列一》25种动画组件超全总结
  10. POJ - 3468 线段树单点查询,单点修改区间查询,区间修改模板(求和)