这个星期的工作定了下来,协助同事做公司信息系统的查询和统计优化工作。
6年前公司开发这个系统的时候没有考虑到会有单表记录千万级别的查询和统计,在设计数据库时也没有采用合适的设计,只有一个记录表。大大限制了现在公司系统的应用规模,目前的系统在百万级别就容易出现查询和统计时停顿、超时现象。
经过两天时间的资料整理,加上自己的经验,今天做了一个表格给相关的负责人,这个表格主要是确定我们系统的应用环境:包括硬件设施、通讯网络、数据库规模、系统的典型查询统计应用、预期目标。还有一个方案修改代价没有写进去,主要是不想一次考虑太多,影响当前的工作。
我把这个工作前前后后想了一遍,有了些想法如下:
1 明确现有系统在查询统计方面的问题
2 明确优化的目标和原则
重点是把细节弄清楚
这一部分,已经得到了实施,上面那个表格就是用来确认这个工作。接下来的工作就是如何完成优化,依靠自己的经验,加上各方面的咨询和资料查找,我把这个优化工作分为下面三个层次:
1 硬件优化,针对数据库服务器配置优化
2 数据库优化 优化数据表的索引、存储等
3 应用方案优化
其中第三个最复杂,难度最高。目前了解有方案有:
1 分页查询
2 分表存取
3 记录导出
4 改进统计规则
目前比较看好分表存取,今天再找找应用方案!
6年前公司开发这个系统的时候没有考虑到会有单表记录千万级别的查询和统计,在设计数据库时也没有采用合适的设计,只有一个记录表。大大限制了现在公司系统的应用规模,目前的系统在百万级别就容易出现查询和统计时停顿、超时现象。
经过两天时间的资料整理,加上自己的经验,今天做了一个表格给相关的负责人,这个表格主要是确定我们系统的应用环境:包括硬件设施、通讯网络、数据库规模、系统的典型查询统计应用、预期目标。还有一个方案修改代价没有写进去,主要是不想一次考虑太多,影响当前的工作。
我把这个工作前前后后想了一遍,有了些想法如下:
1 明确现有系统在查询统计方面的问题
2 明确优化的目标和原则
重点是把细节弄清楚
这一部分,已经得到了实施,上面那个表格就是用来确认这个工作。接下来的工作就是如何完成优化,依靠自己的经验,加上各方面的咨询和资料查找,我把这个优化工作分为下面三个层次:
1 硬件优化,针对数据库服务器配置优化
2 数据库优化 优化数据表的索引、存储等
3 应用方案优化
其中第三个最复杂,难度最高。目前了解有方案有:
1 分页查询
2 分表存取
3 记录导出
4 改进统计规则
目前比较看好分表存取,今天再找找应用方案!