分表与分区的选择(MYSQL)
2012-12-10 15:16
627 查看
MySQL数据结构SQL
案例:
一次在一个项目中有两张表数据比较庞大(线上)
一个是操作日志表:
A 4819556条 插入,修改,查询较多,老的记录查询可能较少,
一个是接口调用表:
B 60719333条 插入和查询频繁
数据量都比较大,这次采用的数据库优化方案是分区。
分区和分表的区别和联系是啥?
分区和分表的目的都是提升数据库的访问性能,而对于应用来说,分区用的是数据库的技术,只要知道表名,应用无需知道数据是放在哪个分区。
分表的话,要做出对应的路由规则,根据分表的KEY键才能知道数据是放在哪个表上。
所以查询的时候,SQL的条件语句最好是带上分区健,这样的话在查询的时候相对效率会高效一些
在做出分区或分表的判断上,一般来说,如果平时访问的量不是特别大,表结构变更也不多,而且历史数据很少访问的情况下,可能会做成分区表,这样平时基本上只要访问最近的分区段,还有利用老数据的清理。
分表一般是数据量非常大,而且访问上没有绝对的热点,基本上所有的数据都有可能会访问到,为了查询的性能和平时DDL的快速会采用分表的方法。
我们这次的分区是是按创建时间来分区的 ,两张表是半年一个分区.那么在查询的SQL中是要求带入创建时间作为where条件的,这样的话可以调高效率。
案例:
一次在一个项目中有两张表数据比较庞大(线上)
一个是操作日志表:
A 4819556条 插入,修改,查询较多,老的记录查询可能较少,
一个是接口调用表:
B 60719333条 插入和查询频繁
数据量都比较大,这次采用的数据库优化方案是分区。
分区和分表的区别和联系是啥?
分区和分表的目的都是提升数据库的访问性能,而对于应用来说,分区用的是数据库的技术,只要知道表名,应用无需知道数据是放在哪个分区。
分表的话,要做出对应的路由规则,根据分表的KEY键才能知道数据是放在哪个表上。
所以查询的时候,SQL的条件语句最好是带上分区健,这样的话在查询的时候相对效率会高效一些
在做出分区或分表的判断上,一般来说,如果平时访问的量不是特别大,表结构变更也不多,而且历史数据很少访问的情况下,可能会做成分区表,这样平时基本上只要访问最近的分区段,还有利用老数据的清理。
分表一般是数据量非常大,而且访问上没有绝对的热点,基本上所有的数据都有可能会访问到,为了查询的性能和平时DDL的快速会采用分表的方法。
我们这次的分区是是按创建时间来分区的 ,两张表是半年一个分区.那么在查询的SQL中是要求带入创建时间作为where条件的,这样的话可以调高效率。
相关文章推荐
- Mysql 分区 分表方案选择
- Mysql 分区 分表相关总结之方案选择
- MYSQL的分表与分区的选择(转载)
- Mysql 分区 分表相关总结之方案选择
- MySQL中MyISAM与InnoDB区别及选择
- MySQL 请选择合适的列! 转载(http://www.cnblogs.com/baochuan/archive/2012/05/23/2513224.html)
- 10亿级流数据交互查询,为什么抛弃MySQL选择VoltDB?
- mysql自动分区存储过程
- 四种 mysql 分区
- mysql 按天分区一年
- MySQL 5.1分区技术初探(一)
- Mysql分表和分区的区别、分库分表介绍与区别
- MYSQL界面的选择-PHP
- mysql分表,分区的区别和联系
- Linux 根分区空间不足,mysql数据占用过大
- mysql的分区技术
- 选择 PostgreSQL, MySQL, Oracle 数据库我之见
- mysql 插入大数据量和分区
- 为什么选择PostgreSQL而不是MySQL
- 关于互联网企业生产环境选择哪种MySQL版本的建议