返回标签
#数据库
7 篇文章,按发布时间排列。
全栈基础
4.1 SQL 与关系模型
关系模型把数据表示为一组关系(relation)。在工程中,关系通常表现为表: enrollments 表表达“用户参加课程”这段关系。它让用户和课程可以各自独立存在,又能建立多对多联系。
全栈基础
4.3 索引为什么能加速查询
假设 orders 表有一亿行: 如果没有可用索引,数据库可能只能从头到尾检查数据页,这叫顺序扫描(sequential scan)或全表扫描。复杂度直觉接近 O(n):数据翻倍,需要检查的内容也大致翻倍。
全栈基础
4.4 事务、并发与隔离级别
如果第一步成功后服务崩溃,钱就凭空少了。事务让这两步组成一个整体: 若中途发现错误,可以 ROLLBACK。不过还要检查第一条更新实际影响了一行,否则余额不足时也可能继续给对方加钱。
全栈基础
4.5 Redis、缓存与数据一致性
Redis 把常用数据放在内存中,并通过网络提供一组针对数据结构的原子操作。它的价值不只是 key - value,还在于服务端理解值的结构: 例如排行榜不必每次把所有分数取回应用排序:
全栈基础
4.6 NoSQL 什么时候有价值
NoSQL 更接近“Not Only SQL”:它泛指不以传统关系模型作为唯一核心的数据系统。这个标签下面的产品差异极大: 因此,真正有意义的问题不是“SQL 还是 NoSQL”,而是: