摘要:
本节内容总结和归纳 书中的第一章节内容. 并将收录于该系列的笔记目录下. 什么是 REST REST 中的重要概念 资源 REST 提出的 API 需要遵守的约束有哪些 符合以下约束的 web 服务才是真正的 RESTful 服务: 约束条件|介绍 | 客户端 服务端 | 这个约束主要是从开发者角度 阅读全文
摘要:
理解 yield 源码 比如我们有一段 code 如下所示: 反编译一下看看源码: 可以理解为带有 yield 语法糖的方法, getList() 在编译后, 底层实际上多了一个方法叫做: \d_x 实际上底层实现了一个迭代器, 这个实现其实和设计模式中迭代模式很相似. 反过来推, 当我们不使用 y 阅读全文
摘要:
background 要求: 将 list 集合中的元素遍历输出的时候, 顺便输出其 index. 集合元素如下: c 代码实现 以前我可能会这写, 感觉很low: 使用 linq 的改进写法: select 源码 reference 感谢: "Linq中带有迭代索引的Select扩展方法,为啥知道 阅读全文
摘要:
参考链接 https://www.cnblogs.com/esofar/p/10486621.html Redis Cluster 官方介绍文档: "https://redis.io/topics/cluster spec" redis cluster 是 redis 官方在 3.0 版本推出的一套 阅读全文
摘要:
本篇已收录在 "MySQL 是怎样运行的 学习笔记系列" MVCC(多版本并发控制)原理 版本链 对于使用InnoDB存储引擎的表来说,它的聚簇索引记录中都包含两个必要的隐藏列(row_id并不是必要的,我们创建的表中有主键或者非NULL的UNIQUE键时都不会包含row_id列): trx_id: 阅读全文
摘要:
本篇已收录在 "MySQL 是怎样运行的 学习笔记系列" 共享锁和独占锁 共享锁,英文名:Shared Locks,简称S锁。在事务要读取一条记录时,需要先获取该记录的S锁。 独占锁,也常称排他锁,英文名:Exclusive Locks,简称X锁。在事务要改动一条记录时,需要先获取该记录的X锁。 假 阅读全文
摘要:
本篇已收录在 "MySQL 是怎样运行的 学习笔记系列" 缓存的重要性 InnoDB存储引擎在处理客户端的请求时,当需要访问某个页的数据时,就会把完整的页的数据全部加载到内存中,也就是说即使我们只需要访问一个页的一条记录,那也需要先把整个页的数据加载到内存中。将整个页加载到内存中后就可以进行读写访问 阅读全文
摘要:
本篇已收录在 "MySQL 是怎样运行的 学习笔记系列" 一条查询语句在经过MySQL查询优化器的各种基于成本和规则的优化会后生成一个所谓的 ,比如多表连接的顺序是什么,对于每个表采用什么访问方法来具体执行查询等等。 mysql 为我们提供了 语句来帮助我们查看某个查询语句的具体 : explain 阅读全文
摘要:
本篇已收录在 "MySQL 是怎样运行的 学习笔记系列" 条件化简 我们编写的查询语句的搜索条件本质上是一个表达式,这些表达式可能比较繁杂,或者不能高效的执行,MySQL的查询优化器会为我们简化这些表达式。 移除不必要的括号 有时候表达式里有许多无用的括号,比如这样: ((a = 5 AND b = 阅读全文
摘要:
本篇已收录在 "MySQL 是怎样运行的 学习笔记系列" mysql 执行查询的成本 I/O成本 我们的表经常使用的MyISAM、InnoDB存储引擎都是将数据和索引都存储到磁盘上的,当我们想查询表中的记录时,需要先把数据或者索引加载到内存中然后再操作。这个从磁盘到内存这个加载的过程损耗的时间称之为 阅读全文