本书分为12章,每一章包含许多原则或准则,并通过举例的方式对原则
进行解释说明。这些例子大多来自于实际案例,对九种SQL经典查询场景以
及其性能影响讨论,非常便于实践,为你的实际工作提出了具体建议。本书
适合SQL数据库开发者、软件架构师,也适合DBA,尤其是数据库应用维护人
员阅读。
本书目录
前言
1 制定计划:为性能而设计
数据的关系视图
规范化的重要性
有值、无值、空值
限用Boolean型字段
理解子类型(Subtype)
约束应明确声明
过于灵活的危险性
历史数据的难题
设计与性能
处理流程
数据集中化(Centralizing)
系统复杂性
小结
2 发动战争:高效访问数据库
查询的识别
保持数据库连接稳定
战略优先于战术
先定义问题,再解决问题
保持数据库Schema稳定
直接操作实际数据
用SQL处理集合
动作丰富的SQL语句
充分利用每次数据库访问
接近DBMS核心
只做必须做的
sQL语句反映业务逻辑
把逻辑放到查询中
一次完成多个更新
慎用自定义函数
简洁的SQL
SQL的进攻式编程
精明地使用异常(Exceptions)
3 战术部署:建立索引
找到“切入点”
索引与目录
让索引发挥作用
函数和类型转换对索引的影响
索引与外键
同一字段,多个索引
系统生成键
索引访问的不同特点
4 机动灵活:思考SQL语句
SQL的本质
掌握SQL艺术的五大要素
过滤
5 了如指掌:理解物理实现
物理结构的类型
冲突的目标
把索引当成数据仓库
记录强制排序
数据自动分组(Grouping)
分区是双刃剑
分区与数据分布
数据分区的最佳方法
预连接表
神圣的简单性
6 锦囊妙计:认识经典SQL模式
小结果集,直接条件
小结果集,间接条件
多个宽泛条件的交集
多个间接宽泛条件的交集
大结果集
基于一个表的自连接
通过聚合获得结果集
基于日期的简单搜索或范围搜索
结果集和别的数据存在与否有关
7 变换战术:处理层次结构
小结果集,直接条件
小结果集,间接条件
多个宽泛条件的交集
多个间接宽泛条件的交集
大结果集
基于一个表的自连接
通过聚合获得结果集
基于日期的简单搜索或范围搜索
结果集和别的数据存在与否有关
8 孰优孰劣:认识困难,处理困难
看似高效的查询条件
抽象层
分布式系统
动态定义的搜索条件
9 多条战线:处理并发
数据库引擎作为服务提供者
并发修改数据
10 集中兵力:应付大数据量
增长的数据量
数据仓库
11 精于计谋:挽救响应时间
数据的行列转换
基于变量列表的查询
基于范围的聚合
一般规则,最后使用
查询与列表中多个项目相符的记录
最佳匹配查询
优化器指令
12 明察秋毫:监控性能
数据库速度缓慢
服务器负载因素
何谓“性能优良”
从业务任务角度思考
执行计划
合理运用执行计划
总结:影响性能的重要因素
Photo Credits
索引