日期:2014-05-17  浏览次数:20513 次

数据库拆分问题!
我现在有一个180万条数据的数据库,我要根据它的条码最后一位数0-9拆分成10个数据库分别把0-9的数据存放到拆分好的数据库?请问怎么拆分数据库呢?或者有更加好的思路,给小弟讲讲,小弟在这里谢谢各位了!
数据库

------解决方案--------------------
楼主

首先如果数据量很大,可以考虑表分区。

拆库一般不轻易操作,实际生产环境中,拆库意味着推翻了相关的DB关联和程序代码。

你的数据只有180W,不需要做任何处理,用索引或者新增列标识记录属于0-9哪个值即可
------解决方案--------------------
先不管数据量,从你的思路上来说就有点走了极端,如果觉得实在很大,那应该先拆表,SQLServer特别是高版本的库,就算1T也不算过分。多个库连接查询开销很大。所以不要轻易拆库。如果你是应为180万数据查询慢,应该着眼于如何优化,特别是索引方面。180万的表在我工作经验中连中等表都算不上,不是特别复杂的查询完全可以秒杀
------解决方案--------------------
可以考虑hash取模方法,也就是最后一位%10 。即使要最后2位或3位,采用hash取模方法都可以把数据拆分到10个数据库中。
hash取模方法,就是数据在10个数据库中比较均匀,它的缺点就是以后作横向扩展比较麻烦。