A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© woying123 中级黑马   /  2015-12-7 18:53  /  766 人查看  /  3 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

案例:
一次在一个项目中有两张表数据比较庞大(线上)
一个是操作日志表:
A  4819556条 插入,修改,查询较多,老的记录查询可能较少,
一个是接口调用表:
B  60719333条 插入和查询频繁

  数据量都比较大,这次采用的数据库优化方案是分区。
  分区和分表的区别和联系是啥?
   分区和分表的目的都是提升数据库的访问性能,而对于应用来说,分区用的是数据库的技术,只要知道表名,应用无需知道数据是放在哪个分区。
分表的话,要做出对应的路由规则,根据分表的KEY键才能知道数据是放在哪个表上。
所以查询的时候,SQL的条件语句最好是带上分区健,这样的话在查询的时候相对效率会高效一些
在做出分区或分表的判断上,一般来说,如果平时访问的量不是特别大,表结构变更也不多,而且历史数据很少访问的情况下,可能会做成分区表,这样平时基本上只要访问最近的分区段,还有利用老数据的清理。
   分表一般是数据量非常大,而且访问上没有绝对的热点,基本上所有的数据都有可能会访问到,为了查询的性能和平时DDL的快速会采用分表的方法。
   我们这次的分区是是按创建时间来分区的 ,两张表是半年一个分区.那么在查询的SQL中是要求带入创建时间作为where条件的,这样的话可以调高效率。

3 个回复

倒序浏览
1312564637 来自手机 中级黑马 2015-12-7 18:58:01
沙发
赞一个…………
回复 使用道具 举报
啊祥 来自手机 中级黑马 2015-12-7 21:23:07
藤椅
顶一个………………
回复 使用道具 举报
赞一个,想多了解。
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马