有一个很大数量的表big_table,大约有十亿个数据,而且要经常插入以及查询,在插入时重建索引的时间令人无法接受。所以现在的想法是按照一定的规则分为1万个表small_table_0,small_table_1……,每个表中大约10万个数据,当然,有些表的数据可能达到50万,有些只有1万,每个表中都可能经常插入以及查询。同时再建一个表大约100万条数据index_table,这个表的作用主要是提示哪一类数据放在哪个表中,用唯一主键进行索引。也就是在十亿数据中查询一个数据分两个步骤进行,第一步是在index_table中查询数据放在哪个表中,例如表small_table_1088。第二步就是在small_table_1088中查询数据,有索引。也就是说查询的时候不会用到联合查询,只查询其中的一个表。就算有联合查询,估计也就是一年查个一两次,这个就到时候再想办法了。这样做是否可行?
个人感觉,这个不是一个最终的解决办法。 现在是10亿数据。按照lz所说,以后数据增长量在这儿摆着。到达100亿也是有可能的。那时候分成的表,维护起来也是一个可怕的数字。 一般来说到了10亿这个级别的数据,应该有归档的处理了。
lz可以在这方面多考虑一下。