- 博客(5)
- 收藏
- 关注
原创 04 | 深入浅出索引
索引的常见模型哈希表:仅使用等值查询有序数组:二分查找,区间查询友好,更新效率低,仅适用于静态存储引擎搜索树:由于二叉树高度较高,磁盘IO次数过多,所以实际使用N叉树。树根的数据块缓存于内存,树的第二层也有很大概率在内存中,进一步减少了访问磁盘的平均次数。InnoDB索引模型每一个索引在InnoDB中都对应一颗B+树。主键索引的叶子结点存的是整行数据(聚簇索引)非主键索引的叶子结...
2018-12-18 19:27:27 154
原创 03 | 事务隔离
隔离性与隔离级别SQL标准的事务隔离级别包括:读未提交(read uncommitted)、读提交(read committed)、可重复读(repeated read)和串行化(serializable)。读未提交是指,一个事务还没提交时,它做的变更就能被别的事务看到。读提交是指,一个事务提交之后,它做的变更才会被其他事务看到。可重复读是指,一个事务执行过程中看到的数据,总是跟这个事务...
2018-12-18 18:49:56 88
原创 Tars之RegistryServer
主控服务(路由+管理):提供节点的地址查询、发布、启停、管理等操作,以及对服务上报心跳的管理,通过它实现服务的注册与发现。模块划分:全量或增量加载路由信息node超时检测服务状态检测供tars服务获取路由的Servant供node访问的Servant服务启动流程://全量和增量加载路由信息的线程_reapThread.init();_reapThread.start()...
2018-12-12 18:55:54 671
原创 02 | 日志系统 一条更新语句是如何执行的
与查询流程不一样,更新流程涉及两个重要的日志模块:redo log(重做日志)和binlog(归档日志)redo log当有一条记录需要更新的时候,InnoDB引擎会先将记录写入redo log里,并更新内存,这个时候更新就算完成了。同时,InnoDB引擎会在适当的时候,将这个记录更新到磁盘里,这个更新往往是在系统比较空闲的时候做。redo log是有大小限制的,当文件被写满,此时需要...
2018-12-06 11:58:31 118
原创 01 | 基础架构 一条查询语句是如何执行的
大体来说,mysql可以分为Server层和存储引擎层两部分。server层包含连接器、查询缓存、分析器、优化器、执行器等,涵盖mysql的大多数核心功能,以及所有的内置函数(如日期、时间、数学和加密函数等),所有跨存储引擎的功能都在这一层实现,比如存储过程、触发器、视图等。存储引擎层负责数据的存储和提取。其架构师插件式的,支持InnoDB、MyISAM、Memory等多个存储引擎。连接...
2018-12-06 10:32:07 151
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人