你的位置:首页 > 数据库

[数据库]知方可补不足~SQL为大数据引入分区表


回到目录

一些概念

分区表在oracle和sqlserver中都上存在的,当数据表的数据量过大时,上千万,上亿的数据,在进行数据查询时需要显得比较慢,性能很差,这时是时候引入分区表了,分区表顾名思义,就是把物理表用一些文件NDF进行分块存储,以缓减IO的压力,因为当你的SQL文件过大的,这其实对系统的IO影响是最大的,这种分区表我感觉类似于数据的分片(mongodb),它将有效的利用服务器的CPU多核资源,并行去处理你的请求,所以在大数据情况下,分区表是很好的一种选择!

我们通常也把电脑的磁盘分成若干的区,其中一种考虑也是为了性能,安全等

sql的分区表于若干的文件组组成,它们可以被理解成依照某个条件(分区函数)来进行划分的文件块,当你进行curd操作时,SQL会把它同时响应到对应的块上去,文件组里至少包含一个文件,当然可以是多个,它们也可以在不同的磁盘上。

查看指定分区内的数据

--查看某个分区表里存放的数据SELECT *FROM  shopWHERE  $PARTITION.RangeTime(CreateTime) = 1

查看某个分区里,记录的个数

--查看某个分区表的个数SELECT $PARTITION.RangeTime(CreateTime) AS 分区编号 ,    COUNT(id) AS 记录数FROM  shopGROUP BY $PARTITION.RangeTime(CreateTime) 

当数据量达到一定指数时,我们必须要进行调整,而选择哪种方法是靠技术决策人的,我们每个开发人员都应该把自己当成是技术的决策人,对自己的代码和自己的人生负责!

感谢您的阅读!

回到目录