【mysql】关于切分查询

转载 2016年06月01日 10:35:22

原文地址:http://blog.csdn.net/moxiaomomo/article/details/9337433

对于大查询有时需要‘分而治之’,将大查询切分为小查询: 每个查询功能完全一样,但只完成原来的一小部分,每次查询只返回一小部分结果集。


删除旧的数据就是一个很好地例子。定期清理旧数据时,如果一条sql涉及了大量的数据时,可能会一次性锁住多个表或行,耗费了大量的系统资源,却阻塞了其他很多小的但重要的查询。将一个大得DELETE语句切分为较小的查询时,可以尽量减少影响msql的性能,同时减少mysql复制造成的延迟。

例如,每个月会运行一次的语句,以清理三个月前的数据:

mysql> DELETE FROM messages WHERE dt<DATE_SUB(NOW(), INTERVAL 3 MONTH);

可以用以下的方法来完成这样的任务:

rows_affected = 0
do {
     rows_affected = do_query("DELETE FROM messages WHERE dt<DATE_SUB(NOW(), INTERVAL 3 MONTH) LIMIT 10000")
}while rows_affected>0

一次删除一万行数据是个比较高效且对服务器影响较小的做法。同时如果每次删除数据时暂停一会,可以将服务器原本的一次性压力分散到一个较长的时间段中,从而减少删除时锁表锁行的时间。

(参考自《高性能MySQL》)

数据切分——Mysql分区表的建立及性能分析

Mysql的安装方法可以参考:         http://blog.csdn.net/jhq0113/article/details/43812895                 Mys...
  • jhq0113
  • jhq0113
  • 2015年03月24日 16:44
  • 16726

MySQL数据表的切分原则

1、当mysql单表的数据库过大时,数据库的访问速度会下降,“数据量大”问题的常见解决方案是“水平切分”。 2、常见的水平切分方式有:分库分表,分区表 3、如何分库分表: 把一个很大的库(表)的数...
  • wlzx120
  • wlzx120
  • 2017年11月09日 15:54
  • 75

数据切分-Mysql分区表的建立及性能分析

MySQL的安装方法参考         http://blog.csdn.net/jhq0113/article/details/43812895         Mysql分区表的介绍     ...

MySQL数据库垂直和水平切分

replication的限制:一旦数据库过于庞大,尤其是当写入过于频繁,很难由一台主机支撑的时候,我们还是会面临到扩展瓶颈。数据切分(sharding):通过某种特定的条件,将我们存放在同一个数据库中...

MySQL数据表的切分原则

1、当mysql单表的数据库过大时,数据库的访问速度会下降,“数据量大”问题的常见解决方案是“水平切分”。 2、常见的水平切分方式有:分库分表,分区表 3、如何分库分表: 把一个很大的库...
  • wlzx120
  • wlzx120
  • 2017年11月09日 15:34
  • 3

[mysql]python3实现并发访问水平切分表

场景说明假设有一个mysql表被水平切分,分散到多个host中,每个host拥有n个切分表。 如果需要并发去访问这些表,快速得到查询结果, 应该怎么做呢? 这里提供一种方案,利用python3的a...

数据切分——MySql表分区概述

定义:        表的分区指根据可以设置为任意大小的规则,跨文件系统分配单个表的多个部分。实际上,表的不同部分在不同的位置被存储为单独的表。用户所选择的、实现数据分割的规则被称为分区函数...
  • jhq0113
  • jhq0113
  • 2015年03月24日 16:08
  • 4200

数据切分——Atlas读写分离Mysql集群的搭建

关于数据切分的原理可以参见博客:         http://blog.csdn.net/jhq0113/article/details/44226789                关于...
  • jhq0113
  • jhq0113
  • 2015年03月16日 11:58
  • 17881

MySQL垂直和水平切分

replication的限制:一旦数据库过于庞大,尤其是当写入过于频繁,很难由一台主机支撑的时候,我们还是会面临到扩展瓶颈。数据切分(sharding):通过某种特定的条件,将我们存放在同一个数据库中...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:【mysql】关于切分查询
举报原因:
原因补充:

(最多只允许输入30个字)