Oracle 数据库

Oracle Database

把数据存成一张张互相关联的表,用 SQL 精确地问出你要的答案。

存储与数据出现时间 · 1979 年前后商业授权按处理器或用户数计价,另有免费的 Express 版本。关系型数据库SQL事务高可用
看官方文档

01 它是干嘛的

Oracle 数据库是一套关系型数据库管理系统,专门处理「不能出错」的关键业务数据:转账、订单、库存。它的强项是事务的严格一致性、复杂查询优化,以及在极端负载下的稳定性与容灾能力。

02 为什么会有它

在数据库之前:数据被硬编码在程序里

早期程序把数据结构写死在代码里。想加一个字段、换一种查询方式,就得改程序、重新编译、重新部署。数据一旦要被多个程序共享,就会出现同一份数据被复制成好几份、彼此不一致的混乱。

关系模型的革命之处在于把「数据怎么存」和「数据怎么用」分开:数据按二维表存放并且表之间可以关联,程序用一种统一的语言 SQL 提问——「给我找出上个月消费超过一万元的上海客户」,具体怎么找由数据库自己决定。

这个想法让数据第一次成为独立于程序的资产。DBA(数据库管理员)这个职业也随之诞生,专职负责表结构设计、索引优化与备份恢复。

03 它怎么工作

数据库收到 SQL 后并不立即动手,而是先解析语义、生成多种执行方案、挑成本最低的那个,再去真正读数据。

托管数据库:写只有一个方向,读可以分散① 写请求 → 主库② 读请求 → 副本③ 主从复制数据同步有毫秒级延迟定时快照你的应用连接池复用连接代理避免每次重新握手主库唯一的写入点只读副本 1承担查询压力只读副本 2就近读取自动备份时间点恢复刚写完立刻去副本读,可能读到旧数据——这叫「主从延迟」,强一致场景要回主库读。唯一写入点副本 / 备份
这张图的重点是主库与备库之间通过日志同步:只要日志还在,即使主库宕机,数据也能在备库上完整重放出来。

一条 SQL 被执行的内部过程

  1. 1
    ① 解析与校验

    检查语法是否正确、表与字段是否存在、当前用户有没有权限访问。

  2. 2
    ② 生成执行计划

    优化器估算多种路径的代价——走哪个索引、用什么连接顺序,选出最便宜的方案。

  3. 3
    ③ 读取数据

    按计划从内存缓冲区或数据文件中取行,缓冲区中没有才去读磁盘。

  4. 4
    ④ 事务与锁

    修改操作写入重做日志并加行锁,保证并发下不会互相覆盖,且崩溃后可恢复。

  5. 5
    ⑤ 提交与返回

    提交后变更永久生效;其他事务按隔离级别决定能否立刻看到这笔改动。

04 谁在用它

银行核心账务系统

一分钱都不能错,且必须能恢复到任意时间点。

大型 ERP 与计费系统

复杂事务与海量历史数据并存。

需要强一致性的订单与库存

并发扣减不能超卖。

政府与电信关键系统

对稳定性与审计留痕有硬性要求。

05 怎么用

从安装一个免费版本、亲手建表写 SQL 开始,是最有效的学习路径。

  1. 01安装免费版数据库,用命令行连上并建两张有关联的表。
  2. 02练习增删改查,重点理解「没有条件会改全表」这个经典事故。
  3. 03建索引后对比查询前后耗时,理解执行计划。
  4. 04亲手做一次备份与恢复演练,这是 DBA 的命根子。

避坑提示

  • !生产环境任何 UPDATE 前先写同条件的 SELECT 看看会命中多少行。
  • !索引不是越多越好,每加一个都会拖慢写入。

06 关键概念

关系模型
用二维表存数据、用外键表达关联,结构清晰且易于校验。
事务(ACID)
一组操作要么全部成功要么全部回滚,中途崩溃也不会留下半成品。
执行计划
数据库自己决定的取数路线,看懂它才知道 SQL 为什么慢。
重做日志
记录每一次变更的流水账,崩溃后靠它重放恢复。

07 容易混淆的对比

MySQL开源免费、上手容易,但复杂查询与高可用能力弱一档。
PostgreSQL开源且功能强大,已成为新项目的主流选择,成本优势明显。
OceanBase / PolarDB国产分布式方向,强调水平扩展与去 IOE 场景。
图软件图鉴

纯静态站点,无后端、无追踪。内容为中文原创撰写,用于帮助非技术读者理解主流软件产品。

关于本站

全部内容在构建时生成
产品名称与商标归各自公司所有

© 2026 软件图鉴Nuxt 4 · Vue 3 · Tailwind 4 · 纯静态