![](https://img-blog.csdnimg.cn/20201014180756913.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
mysql
mazhenxing0805
程序员,搬砖中
展开
-
Mysql (日志文件)
日志文件(Innodb)日志文件的写是顺序写。写磁盘需要寻道,然后再写。故此写日志文件比写磁盘要快。为了避免频繁的读写磁盘,mysql优先在内存中处理数据。然后同步到磁盘中。为了保证数据最终一致性以及事务回滚以及主从同步 引入以下三种日志文件。数据库写入数据流程1.开启事务。2.写undolog 记录具体操作之前的数据。用于事务回滚,以及MVCC3.操作数据,内存操作。4.写redolog文件,保证数据最终一致性,用于恢复数据5.事务提交6.事务提交同时写binlog文件,.原创 2020-09-18 00:04:03 · 189 阅读 · 0 评论 -
Mysql (索引)
索引Hashmysql支持hash索引,查询时间复杂度o(1),但是范围查找需要全表扫描。适合傻瓜查询。类似于map功能。B+树二叉查找树:为什么不用?最大的问题不平衡平衡二叉树:为什么不用?深度太高。二叉。存储数据有限B树:多叉,一个节点可以存多个数据。可以用。但是节点存储索引及数据。导致单个页存放节点数量变小,树深度变大。B+树:B树的改造,非叶子节点只存索引,不存数据,可以更大限度的存储多个索引id,使其深度减小。 第二点:叶子节点有序方便范围查询。innoD...原创 2020-09-15 23:06:40 · 133 阅读 · 0 评论 -
Mysql (架构)
Mysqlmysql架构组成部分。连接层、服务层、引擎层、存储层连接层连接处理、权限认证、以及相关安全方案。引入连接池,减少建立连接销毁连接的开销,并且控制连接数。服务层包括缓存处理、解析器、优化器、执行器。首先查询缓存(8.0废弃)然后解析sql,优化sql找到最适合的索引,进行执行sql操作,访问引擎层引擎层包括innodb和mylsam。负责数据的存储和提取。存储层文件系统的存储(磁盘),完成与存储引擎的交互sql执行流程...原创 2020-09-14 23:20:24 · 147 阅读 · 0 评论