haitao:
【网上搜得】那个用ib很x的人提到的一个实例。。。。。。。
[阅读: 367] 2007-03-18 13:55:47
有一次,公司里的车牌识别系统在现场出现致命的性能问题,症状是,插入数据奇慢无比,老的数据无法删除,删除速度小于插入速度,系统濒临崩溃的边缘,而且此前系统曾经发生过两次数据库Crash,所有数据损失。公司内部召集几位专家进行情况分析,我也过去看了。结果发现,系统设计极不合理:该系统采用sql server,关键部分是两个自关联表,
关联字段是guid类型的字段,车牌识别图片保存在Blob中,数据库目前已经达到了200G,数据库执行SQL滚动删除来删除老数据。后来,我提出了若干改进意见:
1、数据保存在多个数据库中,每个数据采集点采用单独的库,取缔中央数据库;
2、
采用自增长整数作为关键字和关联字段,并建立索引;
3、图片不要保存在数据库中,而是存在硬盘上;
4、采用按时间创建动态数据库的方法存储,定期直接删除整个数据库,而不是执行delete from语句
后来,有关人员听取了前两条,问题解决了。
这一点说明,不同的设计思路体现出来的系统的性能和稳定性会有天壤之别。老天爷可不看你用的是不是名牌数据库。用再好的数据库,如果设计不合理,老天爷很快会向你“发难”。所以好的系统,它的构架设计太关键了。