mysql扫描全表更新状态部分失败
1. mysql排序问题
一直以为mysql是按照主键排序的,实则排序和主键没有关系(不使用 order by 子句)。
然后从 stackoverflow 上查了一下,找到了以下的回答:
没有默认的排序顺序。即使表具有聚集索引,也不能保证按该顺序获得结果。如果需要特定的顺序,则必须使用ORDER BY子句。
2. 线上问题
2.1 场景回顾
定时任务查询A表数据(8万多),每次查询500条,根据业务更新B表数据(15万),同样每次查询500条数据然后更新,大概就这样的业务。
2.2 问题发现
定时任务结束后,发现B表数据部分更新,执行3遍定时任务数据才会全部更新完。
2.3 排查问题
- 首先想到就是定时任务没有将B表数据全部查询出来,然后计算执行多少次算下来确实是15万。这个方向错了。
- 在数据库造点数据,添加日志将每次查询出的数据打印出来(5条),循环5遍发现B表全部更新,这时直接想不到还有什么因素引起的。
最后抱着试一试的心态,查询时候添加order by子句 ,第二天去生产环境看确实好了。
mysql扫描全表更新状态部分失败的更多相关文章
- MySql避免全表扫描【转】
原文地址:http://blog.163.com/ksm19870304@126/blog/static/37455233201251901943705/ 对查询进行优化,应尽量避免全表扫描,首先应考 ...
- Mysql避免全表扫描sql查询优化 .
对查询进行优化,应尽量避免全表扫描,首先应考虑在 where 及 order by 涉及的列上建立索引: .尝试下面的技巧以避免优化器错选了表扫描: · 使用ANALYZE TABLE tbl_n ...
- MySql避免全表扫描
对查询进行优化,应尽量避免全表扫描,首先应考虑在where 及order by 涉及的列上建立索引: .尝试下面的技巧以避免优化器错选了表扫描: · 使用ANALYZE TABLE tbl_name为 ...
- MYSQL的全表扫描,主键索引(聚集索引、第一索引),非主键索引(非聚集索引、第二索引),覆盖索引四种不同查询的分析
文章出处:http://inter12.iteye.com/blog/1430144 MYSQL的全表扫描,主键索引(聚集索引.第一索引),非主键索引(非聚集索引.第二索引),覆盖索引四种不同查询的分 ...
- mysql用一个表更新另一个表的方法
Solution 1: 修改1列(navicate可行) update student s, city c set s.city_name = c.name where s.city_code = ...
- 如何规避MyBatis使用过程中带来的全表更新风险
作者:京东零售 贾玉西 一.前言 程序员A: MyBatis用过吧? 程序员B: 用过 程序员A: 好巧,我也用过,那你遇到过什么风险没?比如全表数据被更新或者删除了. 程序员B: 咔,还没遇到过,这 ...
- mysql中两表更新时产生的奇葩问题,产生死锁!
如下一个两表更新语句 UPDATE hzxm201610 a,xmhzylb1201610 b SET a.gk07_1_6=b.gk04_11,a.gk07_2_6=b.f06_1,a.gk07_3 ...
- mysql 去重,跨表更新,跨表删除
一.去重 1.查询出重复的记录 CREATE TABLE push_log_full_2013_10_30_tmp SELECT * FROM `push_log_full` WHERE time B ...
- MYSQL联合多表更新和删除(转)
文章转自http://www.cnblogs.com/andy_tigger/archive/2011/05/11/2043483.html 多表更新在 MySQL 3.23 中,你可以使用 LIMI ...
- MySQL联合多表更新和删除
多表更新 在 MySQL 3.23 中,你能够使用 LIMIT # 来确保仅仅有给定的记录行数目被更改. 假设一个 ORDER BY 子句被使用(从 MySQL 4.0.0 開始支持),记录行将以指定 ...
随机推荐
- 腾讯云 COS 多 AZ 存储保证服务高可用性
腾讯云 COS 的多 AZ 存储架构能够为用户数据提供数据中心级别的容灾能力.多 AZ 存储将客户数据分散存储在城市中多个不同的数据中心,当某个数据中心因为自然灾害.断电等极端情况导致整体故障时,多 ...
- TeamViewer 的替代品 ZeroTier + NoMachine
之前不怎么用 TeamViewer,最近用的多了,特别好用,有点上瘾,在哪儿都能连家里的 RTX,太棒了. 然后它就开始作了. 有没有好的替代方案呢?有人推荐向日葵,向日葵显然是以盈利为目的的我不想再 ...
- Python 潮流周刊#82:美国 CIA 如何使用 Python?(摘要)
本周刊由 Python猫 出品,精心筛选国内外的 250+ 信息源,为你挑选最值得分享的文章.教程.开源项目.软件工具.播客和视频.热门话题等内容.愿景:帮助所有读者精进 Python 技术,并增长职 ...
- shell脚本忽略错误继续执行
在 shell 脚本中,可以使用 set -e 命令来设置脚本在遇到错误时退出执行.如果你希望脚本忽略错误并继续执行,可以在脚本开头添加 set +e 命令来取消该设置. 例如,下面是一个忽略错误并继 ...
- CSV文件处理工具-CsvUtil
介绍 逗号分隔值(Comma-Separated Values,CSV,有时也称为字符分隔值,因为分隔字符也可以不是逗号),其文件以纯文本形式存储表格数据(数字和文本). Hutool针对此格式,参考 ...
- [转]fatal: unable to access ‘https://github.com/nhn/raphael.git/‘: OpenSSL SSL_connect: Connection was
1.问题描述: 在基于webstorm 配置vue环境时,输入npm install 开始自动安装依赖时出现该问题, 2.解决方案: (1)安装配置git环境. (2)更换npm源: npm conf ...
- springboot的Web项目编译运行时提示错误:Field userService in com.cetc.UserManger.controller.UserController required a bean of type 'com.cetc.UserManger.service.UserService' that could not be found.
错误描述: springboot的Web项目编译运行时提示错误:Field userService in com.cetc.UserManger.controller.UserController r ...
- Mybatis-Plus 多租户模式忽略某个方法
Mapper 类方法添加注解: @InterceptorIgnore(tenantLine = "true") 亲测有效.
- Spring-RetryTemplate-RestTemplate的使用
------------------------------------------------------------------------------------ 1.基本概念 1.1应用场景 ...
- shell脚本中的函数
如果你学过开发,肯定知道函数的作用.如果你是刚刚接触到这个概念的话,也没有关系,其实很好理解的.函数就是把一段代码整理到了一个小单元中,并给这个小单元起一个名字,当用到这段代码时直接调用这个小单元的名 ...