SQLServer的高并发、大数据存储方案

随着用户数量的不断增加,日常生活和峰值的不断增加,数据库处理的性能也面临着巨大的挑战,接下来,为实际的10万+峰平台共享数据库优化方案,与您讨论并相互学习改进!

案例:游戏平台。

1,解决高并发性

当客户端连接数达到峰值,服务器不讨论暂时连接的维护和处理。当多个写请求的数据库时,需要将多个表,尤其是一些表达每万+存储,随着时间的积累,传统的同步写入数据不可取的,经过测试,通过异步插入模式提高了不少,但在同一时间,实时读取数据也需要做一些牺牲。

有许多方式,异步。现在的做法是将数据从临时表房表通过运行每隔一段时间(5min和10min的..)。

1。现有的原始表A也是一个在阅读时实际使用的表。

2。b和c是与原始表A相同的结构,用于数据的传输,同步过程为C。

三.建立数据的同步操作和记录投产投产运行状态表,关键在同步时的当前状态是需要检查投产,如果电流同步B到A的数据,在存储到C的数据服务器,然后把数据插入到B,所以A的数据为例批处理的下一步工作的实施,图1:

图1

同时,为了对冲损失,应当用于调查,对整个数据库实例记录在较短的时间内检查存储过程的执行结果,对异常故障的情况下,应及时通知有关人员通过其他手段,如写邮件和短信表,允许TCP通知程序读取和发送定期等等。

注意:如果有一天数据达到几十个G,如果有这个查询表的需求(下面描述的分区),其中最差的一个:

它可以将多个服务器和共享的B的查询压力,减少资源的竞争,因为整个数据库的资源是有限的,如插入操作,将获得一个共享锁,然后通过聚集索引来定位一行数据,然后升级到意向锁与SQLServer锁维修根据不同的记忆所需要的数据的大小,导致资源的竞争,所以我们应该把阅读和写作尽可能。根据业务模型,我们可以按照集合规则来划分它们。我们应该优先考虑确保数据能够有效地插入到基于平台的项目中。

将消耗大量的查询中的数据资源,不可避免的,如当批量删除,可以通过循环批次更换(如2000),以免引起图书馆挂掉的全过程,来自一些意想不到的错误。通过实践,它是有效的和可行的,但只有在存储空间的费用。你也可以把这个领域的数据到新表根据查询要求,当然,这些也都是根据每个业务场景结合的需要而设计的,因此,我们可以设计一个合适但不华丽的计划。

2。解决存储问题

如果一个单一的数据表每天都达到几十个G,改进后的存储方案自然是不耐烦的。现在共享自己的计划,在急剧的数据破坏中,仍然坚守前线!是自己环境的一个例子,与大家分享我的观点:

在一个数据表,表30g每天新的数据,而使用异步方式存储数据,一些不明确的数据表,在分区可分为文件组,分配到不同的磁盘文件组IO减少资源竞争,维护现有资源的正常运行。5天历史数据保留,结合需求:

1。要生成基于分区函数的工作划分方案,如分区基于用户名或时间字段;

2。在表被分割之后,查询可以通过相应的索引快速定位到一个部分的一部分。

三.通过作业合并分区将非分区的数据传输到相同的结构和索引表,然后清除表的数据。

例如,图2:

图2

Through SQL query tracking, it takes a long time to catch queries, and checks the type and granularity of locks existing in current instances by storing stored procedures sp_lock or view dm_tran_locks and dblockinfo stored in SQL.

在定位到特定的查询语句或存储过程之后,正确的药物!当药物起了作用,症状减轻了 uff01

以上是本文的全部内容,希望本文的内容能给大家的学习或工作带来一定的帮助,同时也希望能给予更多的支持!