{eval=Array;=+count(Array);}

问答专栏Q & A COLUMN

如何在SQLServer中处理四亿三千万条记录?有哪些注意事项?

wenshi11019wenshi11019 回答0 收藏2
收藏问题

2条回答

wangdai

wangdai

回答于2022-06-28 15:32

在实际开发中,绝大部分开发人员应该都没有机会接触到上亿级别的数据,如果SQL Server中的数据量达到亿级了,我们势必要对数据库服务器做一系列的优化措施,否则难以支撑这个量级。

海量数据库优化措施

1、合理的索引

众所周知,合理的索引可有效提升SELECT效率。但是,在大量写入操作时,索引是要维护的,会降低写入速度。所以要建立合理的索引,而不是索引数量越多越好。对于多余索引、低效索引都可以删除掉。

2、分布式数据库部署

我们可以按业务类型将数据做垂直领域划分,不同业务存储在不同数据库服务器上,通过分布式部署将业务分离,有效缓解了数据库压力。不过这种分布式部署对于后期业务整合和综合查询不是太友好,架构如下图示:

3、数据库分区

默认情况下,数据库里一张表的数据都会存储在一个地方,但采用分区后,这些数据会均衡存储在不同地方,这样做能提高SELECT查询效率。一旦某个分区损坏后,也可以利用修复工具对单分区进行修复。注意,数据库分区只适用于海量数据前提下,数据量较少时不需要做,因为数据库分区也有一定的性能消耗。

4、数据库分表

数据库本身都是有性能瓶颈的,我们可以采取横向扩展方案来解决查询效率问题。可以根据业务需求,按一定规则(比如:时间)来对数据进行分表存储,这样一个大的数据集被分割成很多小的数据集,每次查询都在小的数据集合里查询,性能会更高

5、读写分离

读写分离顾名思义就是数据库读操作和写操作在不同数据库上。因为数据库为了保证数据有效性,在写入数据时往往会进行写锁操作,很多情况下会影响读操作的性能。我们写入数据时操作主库,查询数据时操作从库,提高了数据并发性。

通过工具分析查询性能

SQL Server提供了一个SQL Server Profile工具,通过它可以分析数据库查询效率。如下图示:


以上就是我的观点,对于这个问题大家是怎么看待的呢?欢迎在下方评论区交流 ~ 我是科技领域创作者,十年互联网从业经验,欢迎关注我了解更多科技知识!

评论0 赞同0
  •  加载中...
shadowbook

shadowbook

回答于2022-06-28 15:32

首先谢谢邀请

四亿数据已经是个很大的基数了。可以考虑是用nosql存储。如果还使用SQL的化可以考虑分表。

评论0 赞同0
  •  加载中...

最新活动

您已邀请0人回答 查看邀请

我的邀请列表

  • 擅长该话题
  • 回答过该话题
  • 我关注的人
向帮助了您的网友说句感谢的话吧!
付费偷看金额在0.1-10元之间
<