对于国内这种省市县机构单位的海量数据,如何分布式存储?

yak 发布于 2013/11/13 13:44
阅读 663
收藏 2
比如全国的的身份证信息,数据量差不多14亿,如果分表的话,应该按什么策略分布比较好?
加载中
0
程诺一生
程诺一生
一个省一个数据库 一个城市一个表
0
yak
yak

引用来自“笨阿哼”的答案

一个省一个数据库 一个城市一个表
河南省与西藏的库明显负载不均衡
0
kiwivip
kiwivip
全都往redis里面塞~
0
梅开源
梅开源
按应用的需求咯,尽量规避跨表,多表,比如按区域和按号码段分
0
月影又无痕
月影又无痕
按身份证号码分库,分表就可以了,没什么特殊的。
0
魔力猫
魔力猫
这种规律还不好说?建议按照地域分区。而且索引查询效率非常非常快的。
0
l
littledoo
关键是想如何使用它。如果存储只是统一查看,那按身份证号码分段建立索引就好了。但如果要根据各个行政区域建立查看/修改 权限,那就按各省/市建立单位,人口多的省/市再建立索引表。
0
yak
yak

引用来自“littledoo”的答案

关键是想如何使用它。如果存储只是统一查看,那按身份证号码分段建立索引就好了。但如果要根据各个行政区域建立查看/修改 权限,那就按各省/市建立单位,人口多的省/市再建立索引表。

从区 县 省 全国  维度去查询,都能达到最优化的效率


0
yak
yak

引用来自“yak”的答案

引用来自“littledoo”的答案

关键是想如何使用它。如果存储只是统一查看,那按身份证号码分段建立索引就好了。但如果要根据各个行政区域建立查看/修改 权限,那就按各省/市建立单位,人口多的省/市再建立索引表。

从区 县 省 全国  维度去查询,都能达到最优化的效率


一种方案,以单表查询性能下降的阈值做为表容器大小去求余,比如北上广深的身份证的做为一个表,象河南,四川这种做为一个表,象陕西山西中部地区可以两个省份合成一个表 ,象西北5省可以合到一个表, 这样单表的容量始终保持一个阈值以内, 然后这些配置信息做为一个配置文件,每次查询都根据这个配置文件去路由到实际的表
0
红星xx
红星xx

身份证 编号 是 有 规律的 , 身份证 前六位是 行政区划 代码 ,列如是 湖北省(420000 HB) , 420901 (湖北孝感市,市内辖区)  ,  再 8位 生日 ,再 4位 序号 。不足用字母X补齐

有这样的规律 完全可以在程序 算法方面 定位  单集群 ,单服务器 ,单库  。


返回顶部
顶部