`
xlongbuilder
  • 浏览: 41762 次
  • 性别: Icon_minigender_1
  • 来自: 上海->杭州
社区版块
存档分类
最新评论

大数据量数据库配置部署方案思考

阅读更多
业务情况
8个月主要表每张产生了近300万条数据,目前很慢客户反映强烈 ps:如何好用就没我们什么事了。
目前数据库服务器配置 4CPU 8G内存 系统没有服务器端全都是客户端。
还有一台查询服务器,
c/s 结构 数据库 sqlserver2000
每天操作近百笔,用户近百人。
这个系统在设计时没有考虑到这么大的数据量因此没有做什么数据库优化


此问题有以下解决方式:
1、 更换数据库
鉴于MSSqlServer的数据吞吐能力比较低下,因此可采用性能优良的Oracle系列数据库
优点:可以在一定程度上减轻压力。
缺点:价格较高 单CPU 20万左右,且不能彻底解决问题。

2、 集群
可有效的分散数据,减轻单个数据库压力,鉴于MSSqlServer不支持透明集群,可采用数据库分散部署的办法即采用多台服务器部署多个数据库每台数据库包含不同的表。
优点:可靠性伸缩性能好。
缺点:购置服务器费用高昂,需采用跨数据库事务处理性能较差。对系统开发要求较高。

3、 分表
采用将大表分拆成多个小表,采用按时间、类型等方式分拆,使得单次操作数据量控制在可控的范围内。
优点:节省成本。
缺点:系统复杂,对系统开发要求很高。

因为缓存存在很多不确定性不好量化 请大家在不考虑缓存的情况下发表意见。
现在要从c/s结构翻到B/S结构。

大家有什麽思路,应该怎么处理。 说服客户花钱很难,且合同已经签了。
分享到:
评论
46 楼 jason_help 2008-06-26  
xlongbuilder 写道
baibai326 写道
MS的数据库过了200W级别的就有些吃力了,特别是一些大表,过了百万级,经常就是update死锁,等待……特折磨人。

还是换数据库吧,informix,db2_se是不错的选择,O系列太贵了,呵呵,如果只是做报表,数据存储,从性价比上来说,informix足够了,便宜量又足。

当然前提是,换数据库的操作系统。


严重同意 目前就是这个问题
MS的数据库过了200W级别的就有些吃力了,特别是一些大表,过了百万级,经常就是update死锁,等待……特折磨人。
在本人的强烈要求下,客户已经决定采用oracle


这么点数据就用oracle,浪费!
45 楼 airport 2008-06-26  
1000万以下都应该好解决。MS的DB虽然赶不上Oracle但也不至于那么差劲。
问题肯定还在查询优化上了。没有好的DBA,碰到大数据量确实麻烦。
44 楼 edwardpro 2008-06-26  
看看连接池和数据库连接性能吧...
43 楼 xlongbuilder 2008-06-25  
ltshark 写道
我们刚做的一个系统,一小时平均1w的数据量,用的oracle,主表数据很短时间内就变大。我们开始也遇到这个问题,经常应用查询数据库导致数据库cache锁表,最后通过分表来提高应用交互数据库的速度提高。运行表只保持某些状态的数据,不经常处理的数据都弄走。
现在除了2个表union查询慢,其他都还好,不过查询可以通过分区来解决。
在这个过程中我们还发现,程序中很多sql由于写法不好或是别的什么导致数据库压力很大。建议楼主清查一下程序里面的sql,如果有dba最好请这些兄弟分析一下。
我感觉分表要好弄一些,虽然程序还有相应的变动。


谢谢 回复 我们将在设计过程中注意此问题
42 楼 xlongbuilder 2008-06-25  
baibai326 写道
MS的数据库过了200W级别的就有些吃力了,特别是一些大表,过了百万级,经常就是update死锁,等待……特折磨人。

还是换数据库吧,informix,db2_se是不错的选择,O系列太贵了,呵呵,如果只是做报表,数据存储,从性价比上来说,informix足够了,便宜量又足。

当然前提是,换数据库的操作系统。


严重同意 目前就是这个问题
MS的数据库过了200W级别的就有些吃力了,特别是一些大表,过了百万级,经常就是update死锁,等待……特折磨人。
在本人的强烈要求下,客户已经决定采用oracle
41 楼 xlongbuilder 2008-06-25  
bottom 写道
To xlongbuilder,

楼上这么多位大虾都告诉你了,数据量并不大。要想解决问题,还是要做测试,先测SQL,再测JAVA部分。找出瓶颈。不要说不可以,只要是JAVA的系统,不管有没有源码,都可以做的。


谢谢 回复 客户c/s系统非java 没办法测 做了跟踪sql 不过问题基本上发现了
40 楼 剑事 2008-06-25  
mssql 单表 每月 2000W  SP系统
有时候容易死锁 其他还能跑
39 楼 minimu 2008-06-25  
这个很明显是设计问题。。系统设计或者数据库设计。。。

对于这个数据量,你得服务器已经富余很多了,按照你得硬件,数据量大10倍如果设计好问题都不大
MSSQL我们测试过2500W数据单表100~500W都没有出现性能瓶颈(03年得时候,那个时候得单CPU志强1G内存,页面回显3000条数据都是10秒左右,当然还有其它测试。。)

不要老是拿MSSQL说事,MSSQL比Oracle是差劲很多,但是对于这种级别得数据还是小case
最后罗唆:用好MSSQL,优化系统
一个不好得设计纯粹靠换支撑硬件和平台解决不了问题,即使你现在换了Oracle,以现在得设计估计再过半年还是有性能问题
38 楼 blueskit 2008-06-25  
很显然多数人喜欢用高级别武器解决问题
对于MSSQL,一般情况下通过优化索引、分区、优化SQL语句基本可以达到性能要求
不要把MSSQL当成一个黑盒子,去研究一下吧
37 楼 hgq0011 2008-06-24  
Robinson 写道
300w 对于MS SQL、Mysql和Oracle都不存在性能问题,找出最根本的原因才是最重要的,有针对性地解决问题

300W数据不算多对于他们都不算什么吧。
一般都是索引没有设定好,SQL写的不够好,才会出现问题。
36 楼 hgq0011 2008-06-24  
jiming 写道
应该是 sql 或者是数据库设计的问题,SqlServer 的性能没那么差。

我三四年前前做个一个 sql server 的很复杂的报表的存储过程,其中关联有四五个百万级的表,还有一个表的数据有 7 千万的记录。经过优化后十几秒钟也就执行完了。之前没有那个 7 千万条记录的表的时候,1 秒钟就完成了。

而且,那台服务器也就 1G 内存.

您是怎么把你的SQL或SQL Server用得那么好呢?
我们现在有很多的报表,数据也不是很多,用的是IBM的刀片服务器,性能都不尽人意。
35 楼 ltshark 2008-06-24  
我们刚做的一个系统,一小时平均1w的数据量,用的oracle,主表数据很短时间内就变大。我们开始也遇到这个问题,经常应用查询数据库导致数据库cache锁表,最后通过分表来提高应用交互数据库的速度提高。运行表只保持某些状态的数据,不经常处理的数据都弄走。
现在除了2个表union查询慢,其他都还好,不过查询可以通过分区来解决。
在这个过程中我们还发现,程序中很多sql由于写法不好或是别的什么导致数据库压力很大。建议楼主清查一下程序里面的sql,如果有dba最好请这些兄弟分析一下。
我感觉分表要好弄一些,虽然程序还有相应的变动。
34 楼 baibai326 2008-06-24  
MS的数据库过了200W级别的就有些吃力了,特别是一些大表,过了百万级,经常就是update死锁,等待……特折磨人。

还是换数据库吧,informix,db2_se是不错的选择,O系列太贵了,呵呵,如果只是做报表,数据存储,从性价比上来说,informix足够了,便宜量又足。

当然前提是,换数据库的操作系统。
33 楼 aone 2008-06-23  
的确数据量不太大让客户买这买那有点太黑了,但是不让他买好服务器买oracle,他怎么会承认这是大应用,怎么掏他的腰包呢.放心吧,地主家有余粮.
32 楼 codeutil 2008-06-23  

不到1000万条记录的数据库需要什么思考?

31 楼 bottom 2008-06-23  
To xlongbuilder,

楼上这么多位大虾都告诉你了,数据量并不大。要想解决问题,还是要做测试,先测SQL,再测JAVA部分。找出瓶颈。不要说不可以,只要是JAVA的系统,不管有没有源码,都可以做的。
30 楼 zhouzulin 2008-06-23  
数据量不大吗?现在做的这个项目一天的数据量就40w-50w
29 楼 sqe_james 2008-06-23  
设计问题,300万数据正常情况下不应该出现这种状况,我们的系统一天的数据量也远远不只这个数。
28 楼 zhu_chen001 2008-06-23  
用oracle吧,这才是企业级别的,要么DB2,其他的只能是小规模的应用
27 楼 twinkling 2008-06-23  
感觉ms-sql操作1000万左右的表没什么问题..主要还是sql语句以及索引的优化问题..
2005也支持表分区..
还有楼主没有说清楚,慢是查询慢还是更新慢..或者是都慢..

相关推荐

    金融行业MySQL数据库高可用方案的思考.pdf

    "金融行业MySQL数据库高可用方案的思考" MySQL数据库是金融行业中最流行的开源数据库解决方案之一,如何实现高可用性是金融行业的主要关注点。MySQL数据库的高可用性方案可以分为三种:主从复制方案、半同步复制...

    ClickHouse在腾讯音乐敏捷数据分析中的实践和思考.pdf

    ClickHouse是一款高性能的开源列式数据库管理系统,特别适合于在线分析处理(OLAP)场景,尤其在大数据量下的实时分析上有显著优势。 在腾讯音乐的业务环境中,由于在线音乐、直播、K歌等服务的高参与度和强社交性,...

    数据库系统的优化与调优:从理论到实践

    - **Disk**:磁盘是持久存储的主要手段,尽管访问速度较慢,但在大数据量下不可或缺。 #### 二、实践篇 ##### 2.1 MySQL各版本的优化 MySQL作为最受欢迎的关系型数据库之一,其优化对于提高应用程序的整体性能至...

    基于Foreman的Linux自动化管理部署指南.

    1. **服务器重新部署**:解释如何使用Foreman重新部署服务器,包括备份数据、恢复配置等操作。 ##### 3.4. 加入已有的服务器 对于已经存在的服务器,Foreman同样支持将其纳入管理系统中。 1. **加入已有的服务器*...

    数据库技术

    - 建立数据库结构、数据加载、事务和应用程序的编码及测试、系统集成测试与试运行、系统部署等。 5. **运行管理与维护** - 日常维护、系统监控与分析、性能优化与调整、系统升级等。 #### 四、需求分析 **需求...

    446页软件系统通用技术方案及实施方案.docx

    文档的其余部分可能继续深入讨论每个环节的具体细节,如系统设计中的详细技术选型、编码规范、测试策略、部署方案以及后期的维护和升级计划。这些内容共同构成了一个完整的软件开发和实施蓝图,为项目团队提供了清晰...

    基于SpringBoot的失物招领平台源码数据库.doc

    - **部署方案**:选择合适的云服务商进行部署,如阿里云、腾讯云等,同时考虑到数据备份与恢复策略,确保数据安全。 综上所述,基于SpringBoot的失物招领平台不仅在技术选型上考虑了当前最流行的技术栈,还在功能...

    大型项目架构演进过程及思考的点

    - 随着用户量的增长,服务器资源变得紧张,此时将数据服务(如数据库)与应用服务分开部署。 - 分离提高了系统的可用性和可维护性。 3. **引入缓存机制**: - 为了进一步提升性能,采用缓存技术来减少对数据库的...

    邓昳:OpenStack实践与思考

    - **预警规则**:定义预警规则,根据监控数据匹配阈值,支持阀值命中次数配置。 - **报警接口**:支持多种报警方式,如发送邮件、自动负载均衡调整等。 ##### 4.6 计量计费 - **数据采集**:使用Nova-billing组件...

    Java微服务架构在邮政移动互联网应用研发设计中的思考与实践.zip

    4. 分布式数据库和数据一致性:在微服务架构中,每个服务可能有自己的数据库,这就涉及到分布式事务和数据一致性问题。常见的解决方案有两阶段提交(2PC)、补偿事务(Saga)和最终一致性等策略。 5. 持续集成/持续...

    系统架构演进过程.docx

    - **远程缓存适用场景**:当数据量较大或需要在多台服务器之间共享时。 - **分布式缓存适用场景**:支持大规模并发访问和海量数据存储的需求。 - **扩容问题**:分布式缓存扩容时可能会遇到数据迁移和一致性问题...

    国家信息中心云计算平台实践与思考.pdf

    - 工程实验室的云平台配置更为强大,包括核心交换机、接入交换机、防火墙等,拥有更大的计算和存储资源池,提供了数据异地容灾和快照备份功能,增强了安全性。 5. **存在的不足**: - 云平台在网络虚拟化、资源池...

    企业级IT架构分享 云计算架构师成长之路 我们为什么不赞同 OpenStack? 共17页.pdf

    随着数据量的爆炸性增长,如何有效地存储、处理和分析这些数据成为了企业和组织面临的重大挑战之一。 - **大数据**:指那些规模庞大、种类繁多、增长速度极快的数据集合。为了有效利用这些数据,不仅需要高效的存储...

    ES在AdMaster社会化 数据分析系统中的⼤大规模实践-宋兵强

    ### ES在AdMaster社会化数据分析系统中的大规模实践 #### 自我介绍与背景 演讲者宋兵强,来自AdMaster(精硕科技),拥有丰富的百度基础架构部分布式存储组经验,曾参与并负责百度贴吧、文库及移动云到网盘等项目的...

    高性能高并发服务器架构.pdf

    - 数据量处理: eBay通过分区和分片技术有效地处理了巨大的数据量。 - 应用服务器规模: 为了应对高并发访问,eBay部署了大量的应用服务器集群。 - 数据库分布扩展架构: 使用了多种技术手段实现了数据库的分布式...

    高性能高并发服务器架构

    - 启用压缩功能,减少传输数据量。 - 设置静态文件缓存,减轻后端服务器压力。 - **Squid配置**: - 配置缓存大小,根据实际情况调整。 - 设置缓存失效时间,平衡缓存新鲜度与存储空间。 - **Apache配置**: - ...

    金融企业容器建设实践思考

    文件存储适用于小量数据,块存储适合高性能需求(如数据库),对象存储则适合多媒体内容。 3. 多地多中心架构中的网络对接和改造: - 容器平台的应用对外通讯通常通过宿主机IP+端口或域名,这可能会引发与传统系统...

    课设毕设springboot车辆管理系统设计与实现-LW+源码可运行.zip

    SpringBoot作为一个轻量级的框架,简化了Spring应用的初始搭建和配置工作,它集成了大量常用的第三方库,如数据访问、安全、邮件服务等。在这个车辆管理系统中,可能使用了SpringDataJPA进行数据库操作,Spring...

    AIX中国第十五期:反思一体机在企业中的应用

    - **迁移前准备**:在进行数据库迁移之前,需要对源系统进行全面评估,包括但不限于数据量大小、表结构复杂度以及应用程序依赖关系等。 - **迁移工具选择**:根据实际情况选择合适的迁移工具或方案,Oracle提供了...

Global site tag (gtag.js) - Google Analytics