大数据量有关问题又来啦,请高手围观
大数据量问题又来啦,请高手围观!现在数据库里有十几张表,每张表的数据过几千万。为了提高查询的效率,现在想
大数据量问题又来啦,请高手围观!
现在数据库里有十几张表,每张表的数据过几千万。
为了提高查询的效率,现在想把这十几张表,按表里的数据类型再分成子表,分下来大概有6000多张子表,因为查询的时候主要是按这个数据类型为条件再外加其他条件进行查询的,这样分下来的话每张表里只存这个类型的数据,数据量会缩小,查询效率应该会提高,但不知道这么多表会有其他什么影响?
还有就是除了加索引外还有其他什么好的方案能解决这几千万甚至上亿数据查询效率问题?
而且这十几张表里的数据是在每天更新的,加索引可能会影响更新速度。现在的更新方式是直接把原来的全部删掉,然后insert,由于数据量比较大,删除数据时没有用delete(比较慢),而是直接drop掉表,然后重建,这样有没有什么问题隐患?
[解决办法]
做分区表吧,不用INSERT 之类的 ,Switch就是 元数据级别的,不涉及数据的移动 性能好很多 ,而且简化你的维护。
大数据如果只是查询少量的数据还是要靠索引,分区表的索引会更快。
[解决办法]
删除表再建表,怎么会比更新数据快?
几千万条也不多啊,查询速度快慢与索引和查询语句本身的关系更大一些!
[解决办法]
1.如果插入数据的时候把索引禁用,插入完成后又重建索引的话,如果数据量稍微大点,也会耗时不少的,因为隔几十分钟会有一批数据插入,这样可能会影响数据处理效率。
2.如果建分区表的话,我如果要按日期比如一周数据一个区段分别放在不同的分区,但这个时间是在不断变的,是不是需要根据时间去改变分区函数的间隔值。
1.每个几十分钟,就要导入一批呀,我在原来公司曾经尝试过,对一个1.5亿条的表,大概30个字段把,重建索引大概10分钟左右吧,所以如果你的数据量上亿了,确实重建索引的开销会比较大,对系统会有影响。
2,你可以根据你的需要设置分区时间,随着时间的变化,确实像你所说的,需要改变分区函数的间隔值。
另外,你说每个几十分钟,导入一批数据,是导入到某一个表,还是可能会导入到所有的表中呢
[解决办法]分区表和,把一个表分成很多子表相比,
分区表是逻辑上是一个表,而分成很多的子表,像你说的有6000个表,在查询效率、管理的方便、历史数据的迁移,可用性等方面,都更有效率。
[解决办法]啥系统有这么大负荷,几千万的数据量就伤筋动骨?
正确设计一下,可能服务器日子过得比较悠闲
是否要索引,索引多或少,是综合需求确定的。。而不是用片面理论去作标准
[解决办法]