大数据量高并发的数据库优化(二) - [技术研究]

大数据量高并发的数据库优化(二)-[技术研究]

2009年03月17日

解决方案:建立中间表,通过DTS调度每天共步数据。

中间表设计原则

记录数同原表一样,减少多表连接,保存运算好的值,如果记录修改,根据修改日志,重新计算中间值

增量同步数据(DTS)

直接从每天的数据库更改日志读取记录,更新中间表,根据服务器空间程度合理调度DTS,减少数据同步时间。

对中间数据进行运算

查询不作字段运行,所以运算在生成中间表的过程中已经计算

根据查询,优化索引设计

根据数据查询特性,对where,GROUPBY等操作字段进行索引设计,提高查询速度

优化数据类型

大量采用Int提高查询、统计速度

优化中间表关键字

采用Int,提高插入速度

数据文件优化设计,一个主要业务,一个数据文件,建数据文件时,估计数据量,一次建一个比较大的文件,这样所分配的文件就是一个连续文件块,

sqlserver设置区别大小写。初始内存调到一个比较大的内存。

使用我们的Toolkit开发简单分页,相关压力测试,

测试服务器配制

2个至强3.0CPU

2G内存

150G硬盘

Window2000AdvanceServer中文版+SP4

测试数据ENTRY_WORKFLOW表,数据量2,473,437

页数界面显示时间CPUReadsI/OWritesI/ODuration

第1页2-3S642106890390

第100页3-4S6261280010423

....后页业数太多,没有必要

压力测试

并发数平均每秒请求数未字节响应毫秒数

5045.2820,095.65

2545.4110,043.12

索引优化测试,

对分量值小的数据建索引测试,测试语句,GROUPBY分量值

一个字段,大概有6个分量值,没有建索引,4S,建索引<1s

两个分量,不建索引,3S,建索引,<1S

一般来说,对分量小的字段,不建索引,但是我们对性能要求太高,根据我们的测试,数据对分量范围小的也要建索引。

因为一个统计,有一个很多组合的WHERE,比如有十个指标这样会有十次访问原表,这样性能太低,所以我们把where后的数据作

用中间数据,

十个指标对中间数据作查询,中间数据,我们使用临时表,

经测试,10万条记录,插入操作,临时表需要,16s,表变量需要,40S

相关推荐