{eval=Array;=+count(Array);}
在实际开发中,绝大部分开发人员应该都没有机会接触到上亿级别的数据,如果SQL Server中的数据量达到亿级了,我们势必要对数据库服务器做一系列的优化措施,否则难以支撑这个量级。
1、合理的索引
众所周知,合理的索引可有效提升SELECT效率。但是,在大量写入操作时,索引是要维护的,会降低写入速度。所以要建立合理的索引,而不是索引数量越多越好。对于多余索引、低效索引都可以删除掉。
2、分布式数据库部署
我们可以按业务类型将数据做垂直领域划分,不同业务存储在不同数据库服务器上,通过分布式部署将业务分离,有效缓解了数据库压力。不过这种分布式部署对于后期业务整合和综合查询不是太友好,架构如下图示:
3、数据库分区
默认情况下,数据库里一张表的数据都会存储在一个地方,但采用分区后,这些数据会均衡存储在不同地方,这样做能提高SELECT查询效率。一旦某个分区损坏后,也可以利用修复工具对单分区进行修复。注意,数据库分区只适用于海量数据前提下,数据量较少时不需要做,因为数据库分区也有一定的性能消耗。
4、数据库分表
数据库本身都是有性能瓶颈的,我们可以采取横向扩展方案来解决查询效率问题。可以根据业务需求,按一定规则(比如:时间)来对数据进行分表存储,这样一个大的数据集被分割成很多小的数据集,每次查询都在小的数据集合里查询,性能会更高。
5、读写分离
读写分离顾名思义就是数据库读操作和写操作在不同数据库上。因为数据库为了保证数据有效性,在写入数据时往往会进行写锁操作,很多情况下会影响读操作的性能。我们写入数据时操作主库,查询数据时操作从库,提高了数据并发性。
SQL Server提供了一个SQL Server Profile工具,通过它可以分析数据库查询效率。如下图示:
以上就是我的观点,对于这个问题大家是怎么看待的呢?欢迎在下方评论区交流 ~ 我是科技领域创作者,十年互联网从业经验,欢迎关注我了解更多科技知识!
0
回答0
回答0
回答0
回答2
回答0
回答0
回答0
回答0
回答0
回答