输入标题、正文或标签,查找知识。

最近文档

软件工程 / 构建发布与运行构建环境与持续集成:为什么你电脑上能跑还不够你把收藏功能交给同事,他安装以后却打不开。原来你电脑用的是一个 Node 版本,他用另一个;你本地还有没提交的文件。要交付软件,不只需要源代码,还要让别人按照明确步骤得到能运行的结果。软件工程 / 构建发布与运行部署、发布、回滚与观察:把功能交到用户手里代码已经合并,收藏按钮却没出现在网站上。或者网站更新了,点击时提示找不到数据表。交付涉及代码、配置、数据和流量,不能只用“构建成功”判断完成。本章按一次小发布看这些环节怎样配合。语言基础 / TypeScript跨语言对照TypeScript 独有能力与缺失能力清单这一章适合在学完基础后回查:某个能力是 TypeScript 自己提供的,还是来自 JavaScript、浏览器、Node 或第三方库?先把来源认清,再讨论它擅长什么、缺少什么,就不会把“语言没有内置”误解成“整个生态都做不到”。语言基础语言基础学习路线:以 TypeScript 建立可迁移的编程模型学 TypeScript 时,你会同时遇到 JavaScript 的运行规则和 TypeScript 的类型规则。先把这两件事分清,很多报错就好理解了。按顺序做完前面的练习,再读跨语言对照;对照章节用于解释差异,不要求你同时学会五门语言。后端知识 / 身份权限与安全认证、授权与多租户:登录成功只是第一步用户把地址里的订单号从 42 改成 43,居然看到了别人订单。这不是登录失效,而是资源授权缺失。后端要分别确认调用者是谁,以及这个调用者是否能对这份数据执行当前操作。
1 / 5 · 构建环境与持续集成:为什么你电脑上能跑还不够
↑↓ 浏览 Enter 打开Esc 关闭
Damnatiox
知识文件夹

关系型数据库

现代 Java Backend Engineering 学习路线:关系型数据库

0 子目录5 文档
关系型数据库:关系模型、约束与 SQL、事务与隔离、索引与计划、MySQL 实践、PostgreSQL 对照

CHAPTER OVERVIEW · 章节概览

先建立表、约束、查询与事务模型,再比较 MySQL 和 PostgreSQL;根据执行计划判断优化方向。

本章学习路线

箭头表示建议的学习顺序;先理解问题,再逐步进入实现与实践。

flowchart LR N0["01 关系模型"] N1["02 约束与 SQL"] N2["03 事务与隔离"] N3["04 索引与计划"] N4["05 MySQL 实践"] N5["06 PostgreSQL 对照"] N0 --> N1 --> N2 --> N3 --> N4 --> N5

按顺序学习

5
数据库、缓存与搜索:从零开始的阶段导学用户关闭程序后,订单还要存在;两个人同时修改数据时,结果也要符合业务规则。这是学习关系数据库的起点。先掌握表、约束、查询和事务,缓存与搜索则放到对应章节继续学,不急着把所有存储产品混在一起。数据库原理与 SQL:模型、约束、查询、事务与执行计划设计用户表时,哪些字段必须有值,用户名能否重复,一次转账怎样避免只完成一半?这些问题会自然引出约束和事务。下面先用关系模型把数据说清,再用 SQL 表达查询与修改。MySQL:InnoDB、索引、事务、MVCC、日志与性能调优同一条 SQL 在小表里很快,数据一多却变慢,往往要从索引和执行计划找原因。先理解 InnoDB 如何组织记录,再看事务、锁和日志,就能把查询速度与数据正确性放在一起分析。PostgreSQL 基础:类型、索引、MVCC、执行计划与选型学过 SQL 之后,可以通过 PostgreSQL 进一步练习建表、约束和事务。不要只寻找与 MySQL 相似的命令;也要留意它自己的类型和执行行为。下面按从写入到查询的过程,介绍最常用的部分。数据库、缓存与搜索推荐阅读查 SQL 写法、解释执行计划、了解缓存一致性,需要的资料不同。先确认当前问题属于哪一类,再选下面的入口。选数据库也一样:先看数据怎样读写和需要什么保证,再比较产品特性。