
读书笔记
文章平均质量分 91
arthasking123
这个作者很懒,什么都没留下…
展开
-
《高性能MySQL》 第五章 索引 读书笔记
索引索引基础B-TREEMYSIAMMYSIAM索引物理位置使用前缀索引INNODB索引行主键按照原数据索引适用范围:全键值、键值范围或键前缀査找限制如果不是按最左列开始查找,则无法使用索引不能跳过索引中的列,如3个键的联合索引,查询如果只按第一列和第三列进行WHERE过滤,则无法使用索引如果某列按范围查询,则右边剩余列均无法使用索引举个例子:含有3个列的复合索引A B C,对于A=‘a’ ,B>=3,C=4 则索引只能用到A B.原创 2020-12-11 19:23:59 · 280 阅读 · 0 评论 -
《高性能MySQL》 第一章 MySQL架构与历史 读书笔记
MySQL架构与历史逻辑架构连接处理、安全、授权验证査询解析、分析、优化、缓存以及所有的内置函数,存储过程、触发器、视图存储引擎并发控制存储引擎SHOW TABLE STATUS查看表基础信息INNODB4.1后数据和索引分开存放采用MVCC支持高并发,默认隔离级别可重复读,间隙锁防止幻读二级索引包含主键,因此主键如果越大,索引所占用的空间也越大读取优化策略读取磁盘时进行可预测性预读内存中创建hash索引以加速读操作的自适应哈希索引加速插入操作的插入缓冲区(.原创 2020-11-12 18:05:17 · 193 阅读 · 1 评论 -
《设计数据密集型应用》- Designing Data-Intensive Application - 第3章 存储与检索 读书笔记
存储引擎面向日志问题:数据量大时由于需要遍历整个日志文件,性能急剧下降解决方案:索引索引写性能弱于追加文件的性能方案一:HASHMAP保存KEY->文件偏移量实例:bitcask适用场景:KEY数不多,但更新频繁的场景,索引可以放在内存单个日志文件过大时,关闭该文件,开启新的日志段文件,对旧的段日志文件进行重写压缩相关实例:REDIS AOF重写段文件之间也可以进行合并,每个段维护各自的HASHMAP合并旧段可防止文件碎片化问题当客户端.原创 2020-10-22 17:38:16 · 246 阅读 · 1 评论 -
《设计数据密集型应用》- Designing Data-Intensive Application - 第5章 复制 读书笔记
复制领导者与追随者单领导者同步复制与异步复制同步异步半同步:一个副节点同步,其余副节点异步设置新从库全量镜象+增量处理节点宕机从节点追赶恢复主节点流程由剩余从节点或控制节点进行选主流程通常选举有最新副本的从节点做为主节点旧主节点上线后作为从节点存在问题新主库缺失旧主库部分写入,如果其收到冲突的写入(如主键冲突),常见方法是丢掉旧主库未同步的写入,但影响了写入的持久性如果丢掉的写入与其他数据库相关联,则有可能会出现数据不一致的问题脑裂.原创 2020-10-22 17:33:29 · 172 阅读 · 0 评论 -
《设计数据密集型应用》- Designing Data-Intensive Application - 第6章 分区 读书笔记
分区解决问题:解决可扩展性分区与复制通常分区与复制是结合在一起的(多副本)键值的分区根据键的范围分区每个分区可用SSTable以顺序方式保存键缺点:某些特定访问模式会产生访问热点解决方法:尝试用多个字段组合来创建键根据键的HASH分区保证平衡性但失去高效范围查询的能力Cassandra折中策略复合主键的第一列作为分区键,而后续键作为SSTable排序数据连接索引,虽不能在第一列做高效范围查询,但后续列可进行范围扫描负载倾斜与消除热点基于应用层,由用户控制编.原创 2020-10-22 17:31:19 · 177 阅读 · 0 评论 -
《设计数据密集型应用》- Designing Data-Intensive Application - 第7章 事务 读书笔记
事务事务的棘手性ACID单对象和多对象操作单对象写入对单节点上的单个对象(例如键值对)上提供原子性和隔离性原子性通过日志做崩溃恢复隔离性通过加锁实现多对象事务关系型数据库更新带有外键的表文档型数据同时更新多份文档二级索引与数据的同时更新处理错误和中止对于已经提交的事务,如果在给客户端返回结果的网络中断,如果此时重试事务,则需要去重机制如果是由网络拥塞导致的重试,则需要限制重试次数非必要问题不用重试,如违反约束不需要重试两阶段提交弱隔离级.原创 2020-10-22 17:28:45 · 148 阅读 · 0 评论 -
《设计数据密集型应用》- Designing Data-Intensive Application - 第9章 一致性与共识 读书笔记
一致性与共识一致性保证分布式一致性与事务隔离的区别事务隔离主要是为了避免由于同时执行事务而导致的竞争状态分布式一致性主要关于,面对延迟和故障时,如何协调副本间的状态线性一致性即原子一致性(atomic consistency),强一致性满足标准:使系统看起来只有一个副本对于多副本系统,如果第一次从A副本读取,第二次从B副本读取同样的数据,有可能第二次看到的是旧数据,不满足线性一致性解决方法:为读取添加约束,如果第一次读取读到新值,则后续读取也必须保证读到新值线性一致与可.原创 2020-10-22 17:26:33 · 319 阅读 · 0 评论 -
《设计数据密集型应用》- Designing Data-Intensive Application - 第10章 批处理 读书笔记
批处理使用Unix工具的批处理分析简单日志以分析网站URL统计量并倒序排序为例命令链与自定义程序借助SHELL命令链或脚本语言均可用来分析日志排序 VS 内存中的聚合对于上述统计网站的例子,如果URL种类很少,则使用内存中的聚合较合适GNU Coreutils(Linux)中的sort 程序通过溢出至磁盘的方式来自动应对大于内存的数据集,并能同时使用多个CPU核进行并行排序,可对大数据集进行处理Unix哲学统一的接口使用文件描述符在管道中进行输入.原创 2020-10-22 17:20:52 · 201 阅读 · 0 评论 -
《设计数据密集型应用》- Designing Data-Intensive Application - 第11章 流处理 读书笔记
流处理传递事件流消息系统(ACK)直接从生产者传递给消费者常见形式UDP组播无代理的消息库StatsD,使用UDP收集网络中所有机器的的指标并对其进行监控,只有收到所有消息,才认为计数器指标是正确的HTTP或RPC请求存在问题容错能力差,即使有消息重传机制,当消费者或生产者崩溃时,仍会丢失数据消息代理(消息队列)容忍客户端连接的上线、崩溃带来异步与消息延迟问题消息代理与数据库对比数据库中的记录需要显式删除,而消息代理当消息消费完成后即自动.原创 2020-10-22 17:17:27 · 178 阅读 · 0 评论 -
《从0开始学架构》笔记-实战
原创 2020-09-21 15:52:41 · 210 阅读 · 0 评论 -
《从0开始学架构》笔记-可扩展
原创 2020-09-05 12:28:42 · 113 阅读 · 0 评论 -
《从0开始学架构》笔记-高可用
原创 2020-09-02 18:21:21 · 117 阅读 · 0 评论 -
《从0开始学架构》笔记-高性能
原创 2020-09-01 16:28:43 · 171 阅读 · 0 评论 -
《redis设计与实现》书籍读书笔记
仅供参考原创 2020-08-22 17:56:35 · 186 阅读 · 0 评论 -
《ARM Cortex-M3与Cortex-M4权威指南》第6章笔记
CORTEXM基于AMBA总线,对于M3与M4使用AHB Lite,而APB协议用作PPB CODE存储器区域采用独立的总线,分为D-CODE与I-CODE总线分别访问数据和指令,栈访问和读取程序映像中的向量表可以同时执行。 总线接口可插入等待状态,以便高速处理器访问低速外设。 一般来说,ARM7 ARM9 ARM10只支持对齐传输,CORTEXM3 M4支持非对齐传输(个别指令除外),实际...原创 2020-01-19 00:12:52 · 409 阅读 · 0 评论 -
《ARM Cortex-M3与Cortex-M4权威指南》第五章笔记
CORTEXM基于THUMB-2,可同时使用16与32位指令,但其不支持ARM指令,不能前向兼容ARM7TDMI指令集。 指令集包含关系: 指令集合展示3. 原始THUMB指令大多数均会更新APSR,但THUMB-2出...原创 2020-01-06 23:44:36 · 657 阅读 · 0 评论 -
《ARM Cortex-M3与Cortex-M4权威指南》第四章笔记
4.2 编程模型OS内核与系统中断使用MSP(仅能在特权模式下访问),用户任务使用PSP CPU操作状态分为:调试状态(处于DEBUG断点)、THUMB状态(M系列处理器无ARM状态)。操作模式分为:处理模式(在中断ISR状态下)、线程模式(执行普通程序) 线程模式可以切换独立的SP,处理器启动后处于特权线程模式以及THUMB状态,部分架构无非特权线程模式(如M0) 4. M...原创 2020-01-05 21:56:56 · 2355 阅读 · 0 评论