作者热门文章
- ubuntu12.04环境下使用kvm ioctl接口实现最简单的虚拟机
- Ubuntu 通过无线网络安装Ubuntu Server启动系统后连接无线网络的方法
- 在Ubuntu上搭建网桥的方法
- ubuntu 虚拟机上网方式及相关配置详解
CFSDN坚持开源创造价值,我们致力于搭建一个资源共享平台,让每一个IT人在这里找到属于你的精彩世界.
这篇CFSDN的博客文章MySQL切分查询用法分析由作者收集整理,如果你对这篇文章有兴趣,记得点赞哟.
本文实例讲述了MySQL切分查询用法。分享给大家供大家参考,具体如下:
对于大查询有时需要‘分而治之',将大查询切分为小查询: 每个查询功能完全一样,但只完成原来的一小部分,每次查询只返回一小部分结果集.
删除旧的数据就是一个很好地例子。定期清理旧数据时,如果一条sql涉及了大量的数据时,可能会一次性锁住多个表或行,耗费了大量的系统资源,却阻塞了其他很多小的但重要的查询。将一个大得DELETE语句切分为较小的查询时,可以尽量减少影响msql的性能,同时减少mysql复制造成的延迟.
例如,每个月会运行一次的语句,以清理三个月前的数据
。
可以用以下的方法来完成这样的任务:
1
2
3
4
|
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切分查询用法分析的内容请搜索CFSDN的文章或继续浏览相关文章,希望大家以后支持我的博客! 。
我是一名优秀的程序员,十分优秀!