请教一个分表储存的问题,是分表存储好,还是不分?! ip地址库,432353条数据,“ipstart,ipend,region,address”四个字段,大小:21.6 MB我试着将region字段变成RID数字字段,把region的数据存在另外一个表中,这个表只占用了105.9 KB的空间,然而原表还是有17.8 MB,这样就是说节约了不到4MB而已请问是分表储存好 还是不分?!有多大的差别呢?! 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 第二个表就是把第一个表中的“region”字段保存在这个表中,并将RID保存为这个表对应的索引值。 21M并不算大表。 分不发关键是你的表中记录的关系, 如果你的REGION的名字会变,则应该把REGION单独做为一个实体来看,有专门的表(RID,REGIONNAME) 这样,如果名称有变,你只需要更改这个REGIONNAME就行了。 如果这个REGION并不会变,也没什么与其它表记录的联系,则可以按你原表进行存储。建议详细说明你的数据样例,这样比较容易分析。 你这种情况,一个region对应很多ip地址段的吧,当然是分表做不但查询快,还解决了数据冗余问题。 ipstart, ipend, region, address20447232, 20512767, '黑龙江省', '联通'20512768, 20537855, '黑龙江省齐齐哈尔市', '联通'20537856, 20538111, '黑龙江省齐齐哈尔市讷河市', '联通'20538112, 20578303, '黑龙江省齐齐哈尔市', '联通'20578304, 20643839, '黑龙江省哈尔滨市', '联通'20643840, 20665599, '黑龙江省', '联通'20665600, 20665855, '黑龙江省大庆市肇源县', '联通'20665856, 20747775, '黑龙江省', '联通'20747776, 20750079, '黑龙江省伊春市', '联通'20750080, 20750335, '黑龙江省', '联通'20750336, 20750591, '黑龙江省哈尔滨市', '联通'20750592, 20761855, '黑龙江省', '联通'20761856, 20762111, '黑龙江省齐齐哈尔市', '联通'数据基本是不变的! 如果是#7楼这样,因为省市很少变动。 如果这个省市REGION与其它表没有任何关系。则建议就用这一张表就行了。占地会大一点,但查询的时候减少了JOIN所需要的开销。 长度不算长,用1个表即可,如果分表,可以regionid region1 黑龙江2 黑龙江省齐齐哈尔市 分不分表,这样看你实际的需求。数据比较固定的话,用MYISAM存储引擎比较好。估计你要对ipstart和ipend进行范围查询。这个用GEOMETRY会比较好。 不管表中记录的多少。如果region与其它表无关,则不要分表。 即然不考虑更新,那不如就利用目前的方法,至少你可以节约查询的时间。 access数据库中的数据能导入到mysql中吗? sybase sql anywhere5.5谁有 MYSQL远程启动 怎样取得不同ID的前三名 救命的mysql 恢复问题 如果删除数据库指定内容? 菜鸟求一存储过程或解决思路! 请问如何把mysql5.1.4的备份数据在mysql-4.1.8上挑通? 关于字段的奇怪问题,如何才能查询mysql字段里面的不可见字符。。。 求大神帮忙解决数据复制问题 紧急求助 MYSQL 修改密码后登陆不上去! mysql 数据迁移
建议详细说明你的数据样例,这样比较容易分析。
20447232, 20512767, '黑龙江省', '联通'
20512768, 20537855, '黑龙江省齐齐哈尔市', '联通'
20537856, 20538111, '黑龙江省齐齐哈尔市讷河市', '联通'
20538112, 20578303, '黑龙江省齐齐哈尔市', '联通'
20578304, 20643839, '黑龙江省哈尔滨市', '联通'
20643840, 20665599, '黑龙江省', '联通'
20665600, 20665855, '黑龙江省大庆市肇源县', '联通'
20665856, 20747775, '黑龙江省', '联通'
20747776, 20750079, '黑龙江省伊春市', '联通'
20750080, 20750335, '黑龙江省', '联通'
20750336, 20750591, '黑龙江省哈尔滨市', '联通'
20750592, 20761855, '黑龙江省', '联通'
20761856, 20762111, '黑龙江省齐齐哈尔市', '联通'数据基本是不变的!
regionid region
1 黑龙江
2 黑龙江省齐齐哈尔市
数据比较固定的话,用MYISAM存储引擎比较好。
估计你要对ipstart和ipend进行范围查询。这个用GEOMETRY会比较好。