优化数据库对象
目录:
n 优化表的数据类型
n 通过拆分提高表的访问效率
n 适度冗余
n 使用中间表提高统计查询速度
1. 优化表的数据类型
优化数据类型提高性能的原理:
(1) 通过选用更”小”的数据类型减少存储空间,使查询相同的数据需要的IO资源降低
(2) 使用合适的数据类型加速数据的比较
Char 固定长度字符类型 存放长度以字符个数来计算,有字符个数的限制 最终最大存储长度基于字符集
Varchar 可变长度字符类型 存储长度有字节限制 最大(65535字节)
可通过proceduce analyse()对表中的字符提出优化建议
2. 通过拆分提高表的访问效率
(1) 垂直拆分
把一张表的主码和一些列放在一个表,然后主码和另外的列放在另一个表中。
如果一个表中某些列常用,而另外一些列不常用,则可采用垂直拆分
优点:可以使查询的数据列变小,一个数据页能存放更多的数据,在查询时就可以减少IO次数
缺点:需要管理冗余列,查询所有数据需要联合(join)操作
(2) 水平拆分
根据一列或多列数据的值,把数据行存放到多张表中
水平拆分在以下情况考虑使用:
- 表很大
- 表中的数据本来就有独立性
- 需要把数据存放到多个介质上
3. 适度冗余(让Query减少join)
常用反规范技术现象:
(1) 增加冗余列(查询时减少连接操作)
(2) 增加派生列(减少连接操作、避免使用集合函数、提高查询效率)
(3) 重新组表 (添加新表,减少连接)
(4) 分割表
4. 使用中间表提高查询速度
(1) 中间表复制源表部分数据,并且与源表”隔离”,在中间表上做统计查询不会对在线应用产生负面影响
(2) 可以再中间表上灵活添加索引或增加临时用的新字段,从而达到提高统计查询效率