随着用户的日益递增,日活和峰值的暴涨,数据库处理性能面临着巨大的挑战。下面分享下对实际10万+峰值的平台的数据库优化方案。与大家一起讨论,互相学习提高!

案例:游戏平台.
1、解决高并发
当客户端连接数达到峰值的时候,服务端对连接的维护与处理这里暂时不做讨论。当多个写请求到数据库的时候,这时候需要对多张表进行插入,尤其一些表 达到每天千万+的存储,随着时间的积累,传统的同步写入数据的方式显然不可取,经过试验,通过异步插入的方式改善了许多,但与此同时,对读取数据的实时性也需要做一定的牺牲。
异步的方式有很多,目前采取的方式是通过作业每隔一段时间(5min、10min..看需求设定)将临时表的数据转到真实表。
1. 已有原始表A 也是在读取的时候真正用到的表。
2. 建立与原始表A同结构的B和C,用来作数据的中转处理,同步流程是C->B->A。
3. 建立同步数据的作业Job1和记录Job1运行状态的表,在同步的时候比较关键的是需要检查Job1的当前状态,如果当前正在将B的数据同步到A,则把服务端过来的数据存到C,然后再把数据导入到B,等到下一次Job执行的时候再将这批数据转到A。如图1:
图1
同时,为保万无一失和便于排查问题,应该用一个记录整个数据库实例的存储过程,在较短的时间检查作业执行结果,如果遇到异常失败的,应该及时通过其他方式通知到相关人员。如写入到发邮件和短信表,让一个Tcp的通知程序定时读取发送等等。
注:如果一天的数据达到几十个G,如果又对这个表有查询要求(分区下面会提到),下策之一:
可将B同时同步到多台服务器分担下查询压力,减少资源的竞争。因为整个数据库的资源是有限的,如插入操作,会先获得一个共享锁,然后通过聚集索引定位到某一行数据,再升级为意向锁,而sqlserver对锁的维护根据数据的大小需要申请不同的内存,造成了资源的竞争。所以应该尽可能的将读和写分开,可根据业务模型分,可根据设定的规则分;在平台性的项目中应该优先保证数据能有效的插入。
在不可避免的查询大数据肯定会耗用大量的资源,如遇到批量删除的时候,可以换成以循环分批次(如一次2000条)的方式,这样不至于这个进程导致整个库挂掉,衍生出一些无法预计的bug。经实践,有效可行,只是牺牲了存储空间。也可根据查询需求将表里数据量大的字段拆分出来到新表,当然这些也要根据每个业务场景结合需求来设定,设计出适合而并不需要华丽的方案即可。
2、解决存储问题
如果每天单表的数据都达到了几十个G,改善存储方案自然迫不及待了。现分享下自有的方案,在暴涨的数据摧残之下,仍坚守在一线!现举例对自有环境分享拙见:
现有数据表A,单表每天新增数据30G,在存储的时候采用异步将数据同步的方式,有的不能清除数据的表,在分区后还可分文件组,将文件组分配到不同的磁盘中,减少IO资源的竞争,保障现有资源的正常运行。现结合需求保留历史数据5天:
1. 这时需要通过作业job根据分区函数去生成分区方案,如根据userid或者时间字段来分区;
2. 将表分区后,查询可以通过对应的索引,快速定位到某一段分区;
3. 通过作业合并分区将不要的分区数据转移到相同结构和索引的表,然后清除这个表的数据。
如图2:
图2
通过sql查询跟踪捕捉到查询耗时长的,以及通过sql自带的存储过程sp_lock或视图dm_tran_locks、dblockinfo查看当前实例存在的锁的类型和粒度。
定位到具体的查询语句或者存储过程之后,对症下药!药到病除!
以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,同时也希望多多支持!
# Sqlserver
# 高并发
# 大数据
# 存储
# SqlServer 在事务中获得自增ID的实例代码
# SQLServer中防止并发插入重复数据的方法详解
# SqlServer中模糊查询对于特殊字符的处理方法
# sqlServer实现去除字符串空格
# 浅谈sqlserver下float的不确定性
# 存储过程
# 转到
# 如图
# 几十个
# 服务端
# 的是
# 药到病除
# 可根据
# 数据同步
# 是在
# 多个
# 也要
# 有很多
# 已有
# 也可
# 对症下药
# 可以通过
# 达到了
# 不做
# 不可避免
相关文章:
定制建站哪家更专业可靠?推荐榜单揭晓
如何高效配置IIS服务器搭建网站?
整蛊网站制作软件,手机不停的收到各种网站的验证码短信,是手机病毒还是人为恶搞?有这种手机病毒吗?
车管所网站制作流程,交警当场开简易程序处罚决定书,在交警网站查询不到怎么办?
存储型VPS适合搭建中小型网站吗?
建站之星体验版:智能建站系统+响应式设计,多端适配快速建站
建站之星×万网:智能建站系统+自助建站平台一键生成
如何在阿里云服务器自主搭建网站?
如何用腾讯建站主机快速创建免费网站?
如何制作公司的网站链接,公司想做一个网站,一般需要花多少钱?
建站之星备案流程有哪些注意事项?
焦点电影公司作品,电影焦点结局是什么?
如何高效配置香港服务器实现快速建站?
公司网站制作需要多少钱,找人做公司网站需要多少钱?
零基础网站服务器架设实战:轻量应用与域名解析配置指南
,如何利用word制作宣传手册?
教学网站制作软件,学习*后期制作的网站有哪些?
南宁网站建设制作定制,南宁网站建设可以定制吗?
如何快速上传自定义模板至建站之星?
如何选择高性价比服务器搭建个人网站?
建站之星后台管理:高效配置与模板优化提升用户体验
javascript基本数据类型及类型检测常用方法小结
如何在VPS电脑上快速搭建网站?
Python多线程使用规范_线程安全解析【教程】
如何在企业微信快速生成手机电脑官网?
制作网站的网址是什么,请问后缀为.com和.com.cn还有.cn的这三种网站是分别是什么类型的网站?
阿里云高弹*务器配置方案|支持分布式架构与多节点部署
模具网站制作流程,如何找模具客户?
香港服务器选型指南:免备案配置与高效建站方案解析
用v-html解决Vue.js渲染中html标签不被解析的问题
实现点击下箭头变上箭头来回切换的两种方法【推荐】
企业网站制作费用多少,企业网站空间一般需要多大,费用是多少?
宝塔建站助手安装配置与建站模板使用全流程解析
网站专业制作公司,网站编辑是做什么的?好做吗?工作前景如何?
最好的网站制作公司,网购哪个网站口碑最好,推荐几个?谢谢?
山东网站制作公司有哪些,山东大源集团官网?
专业网站建设制作报价,网页设计制作要考什么证?
代购小票制作网站有哪些,购物小票的简要说明?
如何选择最佳自助建站系统?快速指南解析优劣
网站制作公司哪里好做,成都网站制作公司哪家做得比较好,更正规?
制作宣传网站的软件,小红书可以宣传网站吗?
如何在建站主机中优化服务器配置?
建站之星如何助力企业快速打造五合一网站?
如何在Golang中使用encoding/gob序列化对象_存储和传输数据
高端网站建设与定制开发一站式解决方案 中企动力
北京网页设计制作网站有哪些,继续教育自动播放怎么设置?
制作ppt免费网站有哪些,有哪些比较好的ppt模板下载网站?
南京做网站制作公司,南京哈发网络有限公司,公司怎么样,做网页美工DIV+CSS待遇怎么样?
武汉网站制作费用多少,在武汉武昌,建面100平方左右的房子,想装暖气片,费用大概是多少啊?
如何快速生成高效建站系统源代码?
*请认真填写需求信息,我们会在24小时内与您取得联系。