前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >高性能MYSQL读书笔记——引擎与MVCC

高性能MYSQL读书笔记——引擎与MVCC

作者头像
歪歪梯
发布2020-12-15 11:19:34
6610
发布2020-12-15 11:19:34
举报
文章被收录于专栏:歪歪梯Club歪歪梯Club

MVCC

多版本并发控制是mysql的innodb采用的并发控制方案,在可重复读下默认使用该并发控制方案 原理:

  • MySQL全局维护一个递增版本号
  • 表结构有两个隐藏的列,分别代表 初始化时版本 和 过期时版本
  • 新增一条记录时——物理写入一条新数据,设置初始化版本为当前Mysql版本号,过期时版本为空
  • 更新一条记录时——将旧的物理数据行的过期时版本设置为当前Mysql版本号,不改动旧物理数据,重新物理写入一条新纪录,初始化版本填写当前Mysql版本号,新物理数据使用更新后的数据
  • 删除一条记录——将数据库保存的该主键对应的最新一条物理数据(过期时版本为空)的记录的过期时版本设置为当前Mysql版本号
  • 查询数据——找到 【过期时版本为空】 或者 【初始化版本<=当前mysql全局版本 并且 过期时版本>= 当前mysql全局版本】 的数据

总结:通过多条记录,多版本,只做增量的方式来保证可重复读和并发控制(版本校验)

myisam引擎

  • 索引和数据分开在两个文件,因此支持行锁性能不好保障,所以没有设计支持行锁和事务
  • 崩溃后数据恢复困难
  • myisam的存储是紧密存储,结构简单,适用于只读数据库(一经导入不再修改),可以提供更好的性能
  • 对其进行压缩后得到压缩表,一般用于只读数据

Innodb

  • b+树存储索引和数据,叶节点就是数据
  • 支持行锁和事务
  • 因为结构原因,每个非主键索引的物理结构实际都包含主键数据,该引擎下,如果表主键结构数据较大,应该减少非主键索引数量

archive引擎

  • 专门用于频繁插入类型的数据库引擎,适合log类,低查询,只插入
  • 只支持插入和查询,对插入操作缓存到内存,并且对插入行进行压缩
  • 查询需要全表查询

csv引擎

  • 一般用于转化excel文件数据到数据库,方便数据操作
  • 可以将逗号分割的文本文件作为表处理

memory引擎

  • 数据直接存到内存,重启数据清空,仅保留表结构
  • mysql执行查询过程中需要暂存中间结果的表就是memory表

NDB引擎

  • 负责mysql分布式与集群系统的实现
本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2020-12-06,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 歪歪梯Club 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • MVCC
  • myisam引擎
  • Innodb
  • archive引擎
  • csv引擎
  • memory引擎
  • NDB引擎
相关产品与服务
云数据库 SQL Server
腾讯云数据库 SQL Server (TencentDB for SQL Server)是业界最常用的商用数据库之一,对基于 Windows 架构的应用程序具有完美的支持。TencentDB for SQL Server 拥有微软正版授权,可持续为用户提供最新的功能,避免未授权使用软件的风险。具有即开即用、稳定可靠、安全运行、弹性扩缩等特点。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档