- • 系统侧连接池:DBCP / C3P0 / Druid,维持多个连接供多线程复用
- • MySQL 侧连接池:维护所有系统连进来的连接
- • 建立连接时还要校验账号密码、库表权限
- • 连接用完不销毁、归还池子 —— 否则反复建连太耗时
- • 工作线程从网络连接中读出 SQL → 交给 SQL 接口
- • 解析器按语法拆解:目标表、过滤条件、字段列表
- • 优化器生成查询路径树并选最优路径(执行计划)
- • 执行器按计划反复调用存储引擎接口完成读写
- • SQL 接口 / 解析器 / 优化器是通用组件,与引擎解耦
- • 引擎负责跟内存、磁盘文件打交道
- • 高并发更新 / 大规模查询 / 允许丢数据 —— 不同场景设计不同引擎
- • 数据库本质也是一个进程,数据要么在内存要么在磁盘