DDIA p100-118阅读笔记

1.OLTP和OLAP

分别是针对事务型查询和业务分析类的查询,前者比如个人去检查自己的交易记录,只会查几条,而且会查的字段比较多,后者是分析师使用的,比如检查某个字段的平均值、众数等聚合值,如果去扫描的话会扫描所有字段,对数据库写入、读取造成更大的影响。

2.OLAP

通常采用单独的数据仓库,专门针对业务分析,这里有一点像数据库主从多库做备份使用,主从库就是为了负载均衡,读取时从多个库读取,会有主备复制的问题。

3.列式存储

把数据按照字段而非按照整行存储在不同的节点,比如对于学生信息,一个数据库专门存储学生联系方式,一个数据库专门存储学生的学号信息,这里列式存储为什么能更好的加快分析类的请求,首先不同的数据库要维持对应的关系,比如对于第一行,都是同一个学生的信息,只有这样,列式存储才有意义。

列式存储可以采取一定的压缩方式。

4.数据存储

数据存储有模式的问题,因为随着代码的更新,存储模式也可能有不同的变化,比如字段的变化,这里有向前兼容和向后兼容的问题。

向后兼容是指新的代码能阅读旧代码写的数据;向前兼容是指旧的代码能阅读新代码的数据。

实现向前兼容和向后兼容的意义是,新旧业务更新时,为了防止直接更换全部数据和代码出现问题,在实际上线的时候是在一部分节点先测试的,在这个过程中会出现新旧数据并存、新旧代码并存的情况;哪怕不是服务端,针对客户端的更新,也会有一部分更新使用新客户端的用户和不会主动更新使用旧客户端的用户。

5.序列化和反序列化

序列化是指把内存中的数据结构比如栈、队列、自建数据类型、vector等存入存储系统,反序列化是把存储系统的内容变成内存能高效读取的数据结构。

json、xml、csv是针对解决存储的抛开编程语言的标准,针对json还有一些压缩手段,否则比如对于所有学生都有的studentid的字段,每个数据不仅要存储具体id还要存储student id这几个字符,会造成大量冗余,所以数据压缩能解决部分问题。

相关推荐
一隅论数智5 小时前
OWL(Web Ontology Language)介绍与使用举例(二)
大数据·经验分享·笔记·学习·自然语言处理·学习方法·政务
sunoo-2299 小时前
【嵌入式Linux驱动学习】Day1-Day2 全流程梳理:环境搭建→U-Boot→内核→根文件系统→驱动基础
linux·运维·驱动开发·笔记·学习·阿里云·恩智浦
by209999 小时前
list:迭代器与资源管理实现的综合叙述(下)
数据结构·c++·笔记·list
wdfk_prog10 小时前
LWIP教程 03:从 `low_level_input()` 到 `pbuf_free()`——`pbuf` 的数据视图、Chain 与引用计数
运维·网络·笔记·学习
yi01110 小时前
Leetcode 49 用 “身份证‘‘巧解
人工智能·笔记·python·算法·leetcode·哈希表
ouynagda10 小时前
嵌入式Linux i.MX6ULL系统移植学习笔记
linux·笔记·学习
yi01110 小时前
DAY22: LeetCode 733:图像渲染——从二维网格开始理解 DFS 和 BFS
数据结构·笔记·python·算法·leetcode·深度优先·宽度优先
sbjdhjd11 小时前
智能体开始“动手”之后:OpenAI越权事件、Anthropic算力资本化与开放权重模型竞逐 | AI与SI行业日报整理(9月29日—10月6日)
大数据·人工智能·经验分享·笔记·ai·chatgpt·开源
上位机妹子11 小时前
从零理解 EF Core:用 Minimal API 给「工作项看板」建模(小白笔记)
笔记
深圳老胡12 小时前
STM32 MCU 国产替代型号简介
笔记·stm32·单片机·代码规范