MySQL切分查询用法分析

作者:mo_guang 时间:2024-01-28 01:11:35 

本文实例讲述了MySQL切分查询用法。分享给大家供大家参考,具体如下:

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

删除旧的数据就是一个很好地例子。定期清理旧数据时,如果一条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,切分查询
0
投稿

猜你喜欢

  • 基于python实现音乐播放器代码实例

    2022-07-17 21:55:53
  • python使用BeautifulSoup分析网页信息的方法

    2022-02-07 11:33:40
  • JavaScript每天必学之事件

    2024-04-22 13:08:43
  • Python socket处理client连接过程解析

    2022-04-30 15:44:31
  • 用于统计项目中代码总行数的Python脚本分享

    2022-05-11 17:37:11
  • go语言实现mqtt协议的实践

    2024-04-23 09:34:38
  • Mysql技术内幕之InnoDB锁的深入讲解

    2024-01-19 12:16:21
  • Python跨文件全局变量的实现方法示例

    2021-05-26 08:13:23
  • MySQL更新存放JSON的字段、\\“ 转义成 “的问题描述

    2024-01-13 16:30:00
  • Django框架实现的普通登录案例【使用POST方法】

    2021-10-12 18:05:10
  • 在Python的一段程序中如何使用多次事件循环详解

    2023-04-08 03:33:28
  • python生成圆形图片的方法

    2021-04-09 14:48:15
  • 解决给dom元素绑定click等事件无效问题的方法

    2024-04-16 10:36:42
  • vue3 axios 实现自动化api配置详解

    2024-05-28 16:01:23
  • SQL Server 2000里的数据类型

    2011-06-11 14:07:00
  • 对python3.4 字符串转16进制的实例详解

    2022-03-29 16:15:17
  • Ubuntu下使用python读取doc和docx文档的内容方法

    2021-04-09 03:42:30
  • 从零学python系列之教你如何根据图片生成字符画

    2022-04-03 16:05:50
  • vue element-ui实现动态面包屑导航

    2024-05-02 17:11:36
  • vue2.0 elementUI制作面包屑导航栏

    2024-05-02 17:12:16
  • asp之家 网络编程 m.aspxhome.com