软件系统性能设计之二数据库性能设计
2011-09-23 16:00
239 查看
目前大部分系统都使用了数据库,数据库性能对于系统软件的性能影响至关重要,甚至已经是系统软件的主要瓶颈之一。
数据库性能优化主要包括以下几个方面:
1:数据库逻辑设计阶段
1.1 数据库设计要遵循的的三大范式:(1)数据库所有字段要不可再分(2)数据库每个字段都要与主键相关(3)数据库中的每个字段都要和主键直接相关
1.2 数据库设计的三大范式要求数据库冗余越少越好,在实际设计过程中,允许一定的数据冗余可以提高数据库的性能,如将常用的计算列保留为数据表的一列
2:数据库物理设计阶段
2.1 主键的类型要越短越好,tiniint比int好
2.2 索引最好是int类型,检索的时候效果最好
2.3 建立索引,但不是越多越好,而且最好是int类型
2.4 一张表中数据字段不宜过多,实在很多应该垂直分割为多个表
2.5 一张表中如果有大字段或者长字符串的话,不宜有较多字段
3:DBMS和操作系统调整
3.1 提高脑配置
3.2调整数据库配置,如增加缓冲池等等
3.3把数据、日志和索引放在不同的I/O设备上,增加存取速度
4:优化SQL语句
数据库50%-60%的性能问题可以通过修改SQL语句解决。
主要的包括:
4.1 查询数据时避免不必要的数据检索,以减少数据库压力,减少网络负担
4.2 对于distinct和union在没必要时尽量别用,它们会使查询变慢
4.3 关键字in中的字段,最频繁的放在最前面
4.4 最好在where里剔除数据,然后在用group by和having
4.5 优化存储过程,有变量定义时放在最前面,且尽可能一次全定义,一次全赋值
数据库性能优化主要包括以下几个方面:
1:数据库逻辑设计阶段
1.1 数据库设计要遵循的的三大范式:(1)数据库所有字段要不可再分(2)数据库每个字段都要与主键相关(3)数据库中的每个字段都要和主键直接相关
1.2 数据库设计的三大范式要求数据库冗余越少越好,在实际设计过程中,允许一定的数据冗余可以提高数据库的性能,如将常用的计算列保留为数据表的一列
2:数据库物理设计阶段
2.1 主键的类型要越短越好,tiniint比int好
2.2 索引最好是int类型,检索的时候效果最好
2.3 建立索引,但不是越多越好,而且最好是int类型
2.4 一张表中数据字段不宜过多,实在很多应该垂直分割为多个表
2.5 一张表中如果有大字段或者长字符串的话,不宜有较多字段
3:DBMS和操作系统调整
3.1 提高脑配置
3.2调整数据库配置,如增加缓冲池等等
3.3把数据、日志和索引放在不同的I/O设备上,增加存取速度
4:优化SQL语句
数据库50%-60%的性能问题可以通过修改SQL语句解决。
主要的包括:
4.1 查询数据时避免不必要的数据检索,以减少数据库压力,减少网络负担
4.2 对于distinct和union在没必要时尽量别用,它们会使查询变慢
4.3 关键字in中的字段,最频繁的放在最前面
4.4 最好在where里剔除数据,然后在用group by和having
4.5 优化存储过程,有变量定义时放在最前面,且尽可能一次全定义,一次全赋值
相关文章推荐
- 软件系统性能设计之六文件操作设计
- 软件系统性能设计之五多线程设计
- 软件系统性能设计之七代码性能设计
- 【转】数据库设计经验谈(一个成功的管理系统,是由:[50% 的业务 + 50% 的软件] 所组成,而 50% 的成功软件又有 [25% 的数据库 + 25% 的程序] 所组成,数据库设计的好坏是一个关键)
- 提高系统性能数据库设计的横向分割和纵向分割技术
- 软件系统性能设计之一总述
- 高并发软件系统设计原理与实践(二)——性能指标
- 【系统性能优化】(二)数据库设计
- 软件导航系统(2) - 数据库设计
- 系统性能调优(2)----数据库设计优化
- 软件系统性能设计之四负载平衡
- 软件架构设计之一:系统性能评价
- 系统性能调优(2)----数据库设计优化
- 提高系统性能之数据库设计
- 提高系统性能之数据库设计
- 软件系统性能设计之一总述
- 如何提高系统性能之数据库设计
- 提高系统性能数据库设计的横向分割和纵向分割技术 .
- 数据库设计来提高系统性能
- 软件系统的权限数据库设计