首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 数据库 > SQL Server >

大数据量有关问题又来啦,请高手围观

2013-12-11 
大数据量问题又来啦,请高手围观!现在数据库里有十几张表,每张表的数据过几千万。为了提高查询的效率,现在想

大数据量问题又来啦,请高手围观!
现在数据库里有十几张表,每张表的数据过几千万。
为了提高查询的效率,现在想把这十几张表,按表里的数据类型再分成子表,分下来大概有6000多张子表,因为查询的时候主要是按这个数据类型为条件再外加其他条件进行查询的,这样分下来的话每张表里只存这个类型的数据,数据量会缩小,查询效率应该会提高,但不知道这么多表会有其他什么影响?
还有就是除了加索引外还有其他什么好的方案能解决这几千万甚至上亿数据查询效率问题?

而且这十几张表里的数据是在每天更新的,加索引可能会影响更新速度。现在的更新方式是直接把原来的全部删掉,然后insert,由于数据量比较大,删除数据时没有用delete(比较慢),而是直接drop掉表,然后重建,这样有没有什么问题隐患?

[解决办法]
做分区表吧,不用INSERT 之类的 ,Switch就是 元数据级别的,不涉及数据的移动 性能好很多 ,而且简化你的维护。 

大数据如果只是查询少量的数据还是要靠索引,分区表的索引会更快。 
[解决办法]
删除表再建表,怎么会比更新数据快?
几千万条也不多啊,查询速度快慢与索引和查询语句本身的关系更大一些!
[解决办法]


1.如果插入数据的时候把索引禁用,插入完成后又重建索引的话,如果数据量稍微大点,也会耗时不少的,因为隔几十分钟会有一批数据插入,这样可能会影响数据处理效率。
2.如果建分区表的话,我如果要按日期比如一周数据一个区段分别放在不同的分区,但这个时间是在不断变的,是不是需要根据时间去改变分区函数的间隔值。

1.每个几十分钟,就要导入一批呀,我在原来公司曾经尝试过,对一个1.5亿条的表,大概30个字段把,重建索引大概10分钟左右吧,所以如果你的数据量上亿了,确实重建索引的开销会比较大,对系统会有影响。

2,你可以根据你的需要设置分区时间,随着时间的变化,确实像你所说的,需要改变分区函数的间隔值。

另外,你说每个几十分钟,导入一批数据,是导入到某一个表,还是可能会导入到所有的表中呢


[解决办法]
分区表和,把一个表分成很多子表相比,

分区表是逻辑上是一个表,而分成很多的子表,像你说的有6000个表,在查询效率、管理的方便、历史数据的迁移,可用性等方面,都更有效率。
[解决办法]
啥系统有这么大负荷,几千万的数据量就伤筋动骨?
正确设计一下,可能服务器日子过得比较悠闲

是否要索引,索引多或少,是综合需求确定的。。而不是用片面理论去作标准
[解决办法]

[解决办法]
其实可以从以下几方面做:
1、多建几个文件组,不同的文件放在不同的文件组中,当然如果再用到表分区效果更好。
2、可以增加磁盘,提高磁盘的读写速度。
3、表结构的设计也非常重要。索引及主键建得好不好会影响到删除及更新。如果更新尽量不要是索引列,删除时可以根据索引的条件进行删除。
[解决办法]
而且这十几张表里的数据是在每天更新的,加索引可能会影响更新速度。现在的更新方式是直接把原来的全部删掉,然后insert,由于数据量比较大,删除数据时没有用delete(比较慢),而是直接drop掉表,然后重建,这样有没有什么问题隐患?
这句已经满足你用truncate了,先truncate再drop,然后重建或者不用重建,这样速度快很多,空间消耗也少,直接drop大表的话ldf增长很大。对于你其他问题,预期这样分,不如做个分区。多表关联可能会导致使用动态sql来拼接,增大编程工作量,多表关联也会导致优化器的候选方案非常多,好像是阶乘级别。12张表关联以前看过资料要评估过亿中方案,可想而知消耗资源特别是CPU会有多高


[解决办法]
效率,分子表可能高一点点(更精准了)
但是管理方便、sql好写,分区表是远远好于分子表
[解决办法]

我的测试结果是手动分表效率更高,当然如果数据要避免倾斜。
手动分表更加灵活,效率更高,但是管理和使用复杂度远远高于分区表。

我的建议是,可以适度考虑NoSQL,比如MongoDB或者Hbase。各种NoSQL数据库的共性:
1.数据精确性不高(大多时候不出问题,可能会有极少量数据不精确)
2.大部分NoSQL不支持事务
3.连接查询支持不是很好

[解决办法]
你们是做什么业务的?每天的数据量有多大?我们做数据采集的,每天数据一百万以上。单个表的数据上亿的也有,但是查询并没有慢。其实有时你可以更改设计,查询的数据是不是需要汇总?是否可以建一些汇总的表单,方便查询?我相信用户不用看几千万条数据的明细。
[解决办法]
引用:
我没用过,不知道大数据时NOSql的插入效率和查询效率会高吗?

效率会提高,大多数NoSQL支持数据分片。有得就有失,NOSQL放弃了关系数据库中严格的数据一致性检查。
[解决办法]
Hbase可以支持TB级数据库的快速插入和查询。从关系型数据库切换到Nosql,设计上需要花较多心思。

热点排行