数据库背景
数据库术语
数据库结构
- 数据源:多源数据继承
- 数据仓库继承工具:FTL工具、MapReduce
- 数据仓库服务器:列存储数据库引擎
- 数据即使:数据仓库的数据子集、聚集数据继
- OLAP服务器:提供多维数据视图
- 前台数据分析工具
- 报表工具
- 多维分析工具
- 数据挖掘工具
数据库类型
- 传统关系型数据库
- MPP大规模并行处理数据库
- NoSQL数据库
- 图数据库
- NewSQL数据库
- GPU数据库
数据查询
Project Pushdown:投影下推
- 只读取、查询需要的列
- 减少每次查询的IO数据量
Predicate Pushdown:谓词下推
- 将过滤条件尽快执行,跳过不满足条件行
数据压缩算法
- Run Length Encoding:重复数据
- Delta Encoding:有序数据集
- Dictionary Encoding:小规模数据集合
- Prefix Encoding:字符串版Delta Encoding
数据库调优
数据库调优:是数据库具有更高的吞吐量、更快响应
- 被调优对象是数据库整体
- 需要考虑很多资源、数据库配置
人工调优
- 依赖人工,效率低下
- 要求操作者理解查询原理,对应用、DBMS、操作系统、硬件有 一定理解
基于案例调优
- 总结典型应用案例情况中数据库参数推荐配置值、逻辑层设计等 情况,为用户调优工作提供参考、借鉴
- 忽略系统动态性、不同系统之间差异
自调优
- 为DBMS建立模型,根据“影响数据库性能效率的因素”,自动进行 参数配置
- 部分商业数据库实现了自调优技术
需求分析期
应用情况估算
- 应用使用方式
- 将业务逻辑转换为读写分布逻辑,以读多写少、读写均衡 区分OLAP、OLTP
- 应用对数据库的并发情况、并发是否可池化
- 数据量
- 对数据库压力、峰值压力
系统选型策略
- 确定适合的数据库:开源、商业;集群、单机
- 操作系统、中间件、硬件、网络选型
项目设计期
数据模型设计
根据业务逻辑,从以下角度考虑表结构
- E-R模型设计:遵循E-R模型设计原理,适当非规范化可以改善 系统查询性能
- 数据逻辑分布策略:减少数据请求中不必要的数据量
- 分区
- 利用E-R模型分表
- 数据物理存储策略:减少IO操作
- 启用压缩
- 分开存储索引、表数据
- 不同表数据分布在不同表空间
- 不同表空间分布在不同物理存储,尤其是读写量大的表空间 分布在不同物理存储上
- 日志、索引、数据分布在不同物理存储上
- 索引:在查询频繁的对象上建立恰当索引
开发期
SQL设计
- 编写正确、查询效率高的SQL语句,依据“查询重写规则”
- 有意识地保障SQL能利用到索引
数据库功能启用
- 查询重用
- 数据库参数设计
测试、试运行、上线、维护
模型系统预运行
- 在备用系统上模型实际运行环境,加大压力进行相似测试
系统监控分析
- 应用系统表示:收集用户使用意见、系统存在问题
- OS环境监控:实时监控CPU、内存、IO等,对比历史正常情况
- 数据库内部状态监控:系统表、视图、工具、锁的情况
- 日志分析:在数据库的日志、操作系统日志中找出异常