MySQL 基本概念

MyISAM:无事务、锁表、读写互相阻塞、索引不缓存数据、数据与索引分离,都是【非聚集索引】
InnoDB:有事务,默认用主键or唯一非空列or隐藏列建立【聚集索引】(只能有一个),索引和数据在同一个B(平衡)树,影响增改性能,速度快,特性如下:

  • 插入缓冲(insert buffer)
  • 两次写(double write)
  • 自适应哈希索引(adaptive hash index,AHI)
  • 异步IO(asynchronous IO,AIO)
  • 刷新邻接页(flush neighbor page)

稠密索引、稀疏索引

下面三个是很常见的知识点,一定要反复复习记住

ACID

  • 原子性 atomicity
  • 一致性 consistency
  • 隔离性 isolation
  • 持久性 durability

隔离级别

隔离级别 脏读 不可重读 幻读 英文名 默认
RU 读未提交 Read uncommitted
RC 读已提交 × Read committed 其他
RR 可重读 × × Repeatable read MySQL
S 串行化 × × × Serializable
  • 读未提交 = 脏读,没有隔离性,Saga 分布式事务的缺点
  • 读已提交 = 不可重读:更新,一个事务两次读取内容不一样
  • 幻读:插入,一个事务两次读取条数不一样,MySQL 用 MVCC 解决
  • 多版本并发控制 MVCC Multiversion Concurrency Control
    • DB_TRX_ID 最近增改事务ID
    • DB_ROLL_PTR 回滚指针,上一版本 0x...
    • DB_ROW_ID 自增ID,没有主键时的聚簇索引
    • DELETED_BIT 删除

CAP

  • 一致性 Consistency
  • 可用性 Availability
  • 分区容错性 Partition tolerance

与缓存一致性

  • 先更新数据库,避免刚删完缓存就被其他线程刷入旧数据
  • 缓存使用删除而不是更新,避免更新时数据库内容已经变了
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 数据库的基本概念 DB:表 视图 索引 存储过程 触发器 EventsDB可以想象成为一个文件夹,表就是...
    吃货大米饭阅读 3,146评论 0 0
  • MySQL基本概念 一、MySQL MySQL是一个关系型数据库管理系统,由瑞典MySQL AB 公司开发,目前属...
    会吐泡泡的小海豚阅读 3,677评论 0 1
  • 前言 开始学习mysql,总结一下一些mysql的基本概念。 PS: 我只是知识的搬运工 基本概念 逻辑架构 事务...
    2林子易2阅读 2,767评论 0 0
  • mysql 1.逻辑架构图 2.并发控制 只要有多个查询需要在同一个时刻修改数据导致出现并发问题(读取数据不会出现...
    LaputCat阅读 3,607评论 0 1
  • 数据库:是一些关联表的集合。
    visitor009阅读 1,040评论 0 0