请问将一个数据很多的表分成两个表这样有助于提高效率吗?
一个表存储产品资料,product资料会挺多的吧。
会有1千万行数据。
现在考虑为每个地区创建一个表,例如江苏则访问product _js,南京则访问product _nj
,这样子有助于效率吗?有必要这样子弄吗?
或者是有别的方法呀,大侠赐教
大数据
------解决方案--------------------系统使用较多的是查询功能。
在查询时,分地区有影响吗?
如果分不分地区对查询没影响的话,分一下好一些吧。
比如是否跨地区查询?
------解决方案--------------------分开性能上肯定有帮助,但是必须考虑清楚,现在或者将来有无可能有跨地区查询或者搞不清地区的查询,如果有,需要慎重;
可以考虑分区表,如果各地区数据比较平衡,就以地区字段分区,也可考虑按其他字段分区(比如id字段分段),分区后对原有逻辑不必修改,但是能提高性能
------解决方案--------------------部门级服务器千万行数据,按索引查询一般性能没有问题,分区的话能提高一些
如果有其他不按索引查询的需求,可能需要考虑分表或者分区
------解决方案--------------------我觉得分表会比分区更好维护吧呵呵
------解决方案--------------------录入的时会很慢,执行的时间会比以往速度快一些,如果经常使用建议写存储过程呢!!或者视图
地区表
产品表
产品类型表
货物的规格表
....
希望对你有所帮助
------解决方案--------------------分开自然是好啦,不过如果以后如果需要跨区域搜索,那就有点麻烦了,
如果实在要分,可以考虑下分区表。。。
------解决方案--------------------首先要透彻了解你的业务,举个例子,中国移动,它是以省级做一个公司的,数据那些也是汇总到省级,不是说什么数据都汇总到总公司,不然的话你想想一下数据量,在这种情况下,分区是必然的事情。而且基于绝大多数情况的应用都是在对应的省内,所以它查询的时候相对来说返回就少了很多。
现在拿你的例子来说,1千万并不大,但是如果短时间就增长1000万,那要考虑后续的问题。然后如果你的查询操作经常是发生在对应的地级市,那么完全可以分实体表,每个区分一个,如果跨区查询还是比较多,那2005以后也可以考虑使用表分区功能,但是这个东西会有一点难配。配不好性能更差。
最后,对于一些历史性的数据,也就是假设5年前,没有什么可能性用到,却要保留的数据,可以移开到一些历史表甚至历史库上,保证“活动”库的容量不会增长的太快。
------解决方案--------------------
根据这个回复
一、单一产品存在跨区域——如果按区域划分,会产生连接查询。
發糞塗牆说的分省也许可以解决。
如果是5个省,查询时直接给他显示5条——5个省出来。
二、我做过一些销售类的整站,从具体业务来说,其实在业务处理这一块,不必分表。
分几个表试试。
2.1 1#产品列表。不涉及区域,所有产品丢出来。
2.2 2#购买流程表。顾客购买的记录,购买流程未完成时放在这里。
2.3 3#购买记录表。已完成购买发货收货一系列流程的记录放在这里。用事务控制一下,在这个表添加时删除对应的2#表记录。当然,这个购买记录表也可以分表(比如分省级)。
销售的主要查询其实有两种。
一是处于购买流程中的,比如客户要查购买状态、店铺要查哪些业务要处理。
二是查询一些已经完成购买流程的。比如财务统计,如果不将未完成与已完成分开,非常难处理——涉及修改或者取消订单。