mySql学习笔记(1:mySql架构)

43 阅读1分钟

PART1 :mySql架构

SQL执行过程:

图片.png

(*先查询缓存 如有查询结果则直接返回。8.0版本后取消)

mysql从InnoDB开始支持事务,因为它有事务相关的日志系统 redo log(重做日志) 及 undo log(撤销日志)。 redo log用来保证数据持久性,可以用来做数据恢复; undo log用于支持事务的原子性和多版本并发控制(MVCC)。

mysql连接模式为长连接 一般为8小时 8小时无操作断开:Lost connection to MySQL server during query.

数据误删需要恢复时: 首先找到最近的一次全量备份,从这个备份恢复到临时库;然后,从备份的时间点开始,将备份的binlog依次取出来,重放到误删表的那个时刻。

PART2:索引

索引是帮助mySql高效获取数据的排好序数据结构(二叉树 红黑树 Hash表 B-Tree)。

InnoDB表(支持事务,行级锁,外键,mvcc,有利于高并发场景应用.可靠性高,数据库崩溃后可通过redolog恢复)必须建主键,且必须整型自增。

B+Tree索引: 非叶子节点不存储data,只存储索引(冗余),可以放更多的索引,叶子节点包含所有的索引字段,用指针连接,提高区间访问的性能。

图片.png

Hash索引: 对索引的key进行一次hash计算就可以定位出数据存储的位置。很多时候hash索引比b+索引效率高,但Hash仅能满足 = ,in 不支持范围搜索, 且有hash冲突问题

索引最左前缀原理: 使用索引需要按照索引字段顺序用

图片.png