01 它是干嘛的
Oracle 数据库是一套关系型数据库管理系统,专门处理「不能出错」的关键业务数据:转账、订单、库存。它的强项是事务的严格一致性、复杂查询优化,以及在极端负载下的稳定性与容灾能力。
02 为什么会有它
在数据库之前:数据被硬编码在程序里
早期程序把数据结构写死在代码里。想加一个字段、换一种查询方式,就得改程序、重新编译、重新部署。数据一旦要被多个程序共享,就会出现同一份数据被复制成好几份、彼此不一致的混乱。
关系模型的革命之处在于把「数据怎么存」和「数据怎么用」分开:数据按二维表存放并且表之间可以关联,程序用一种统一的语言 SQL 提问——「给我找出上个月消费超过一万元的上海客户」,具体怎么找由数据库自己决定。
这个想法让数据第一次成为独立于程序的资产。DBA(数据库管理员)这个职业也随之诞生,专职负责表结构设计、索引优化与备份恢复。
03 它怎么工作
数据库收到 SQL 后并不立即动手,而是先解析语义、生成多种执行方案、挑成本最低的那个,再去真正读数据。
一条 SQL 被执行的内部过程
- 1① 解析与校验
检查语法是否正确、表与字段是否存在、当前用户有没有权限访问。
- 2② 生成执行计划
优化器估算多种路径的代价——走哪个索引、用什么连接顺序,选出最便宜的方案。
- 3③ 读取数据
按计划从内存缓冲区或数据文件中取行,缓冲区中没有才去读磁盘。
- 4④ 事务与锁
修改操作写入重做日志并加行锁,保证并发下不会互相覆盖,且崩溃后可恢复。
- 5⑤ 提交与返回
提交后变更永久生效;其他事务按隔离级别决定能否立刻看到这笔改动。
04 谁在用它
银行核心账务系统
一分钱都不能错,且必须能恢复到任意时间点。
大型 ERP 与计费系统
复杂事务与海量历史数据并存。
需要强一致性的订单与库存
并发扣减不能超卖。
政府与电信关键系统
对稳定性与审计留痕有硬性要求。
05 怎么用
从安装一个免费版本、亲手建表写 SQL 开始,是最有效的学习路径。
- 01安装免费版数据库,用命令行连上并建两张有关联的表。
- 02练习增删改查,重点理解「没有条件会改全表」这个经典事故。
- 03建索引后对比查询前后耗时,理解执行计划。
- 04亲手做一次备份与恢复演练,这是 DBA 的命根子。
避坑提示
- !生产环境任何 UPDATE 前先写同条件的 SELECT 看看会命中多少行。
- !索引不是越多越好,每加一个都会拖慢写入。
06 关键概念
- 关系模型
- 用二维表存数据、用外键表达关联,结构清晰且易于校验。
- 事务(ACID)
- 一组操作要么全部成功要么全部回滚,中途崩溃也不会留下半成品。
- 执行计划
- 数据库自己决定的取数路线,看懂它才知道 SQL 为什么慢。
- 重做日志
- 记录每一次变更的流水账,崩溃后靠它重放恢复。
07 容易混淆的对比
MySQL开源免费、上手容易,但复杂查询与高可用能力弱一档。
PostgreSQL开源且功能强大,已成为新项目的主流选择,成本优势明显。
OceanBase / PolarDB国产分布式方向,强调水平扩展与去 IOE 场景。