1. mysql排序问题

一直以为mysql是按照主键排序的,实则排序和主键没有关系(不使用 order by 子句)。

然后从 stackoverflow 上查了一下,找到了以下的回答:

没有默认的排序顺序。即使表具有聚集索引,也不能保证按该顺序获得结果。如果需要特定的顺序,则必须使用ORDER BY子句。

2. 线上问题

2.1 场景回顾

定时任务查询A表数据(8万多),每次查询500条,根据业务更新B表数据(15万),同样每次查询500条数据然后更新,大概就这样的业务。

2.2 问题发现

定时任务结束后,发现B表数据部分更新,执行3遍定时任务数据才会全部更新完。

2.3 排查问题

  1. 首先想到就是定时任务没有将B表数据全部查询出来,然后计算执行多少次算下来确实是15万。这个方向错了。
  2. 在数据库造点数据,添加日志将每次查询出的数据打印出来(5条),循环5遍发现B表全部更新,这时直接想不到还有什么因素引起的。

最后抱着试一试的心态,查询时候添加order by子句 ,第二天去生产环境看确实好了。

mysql扫描全表更新状态部分失败的更多相关文章

  1. MySql避免全表扫描【转】

    原文地址:http://blog.163.com/ksm19870304@126/blog/static/37455233201251901943705/ 对查询进行优化,应尽量避免全表扫描,首先应考 ...

  2. Mysql避免全表扫描sql查询优化 .

    对查询进行优化,应尽量避免全表扫描,首先应考虑在 where 及 order by 涉及的列上建立索引: .尝试下面的技巧以避免优化器错选了表扫描: ·   使用ANALYZE TABLE tbl_n ...

  3. MySql避免全表扫描

    对查询进行优化,应尽量避免全表扫描,首先应考虑在where 及order by 涉及的列上建立索引: .尝试下面的技巧以避免优化器错选了表扫描: · 使用ANALYZE TABLE tbl_name为 ...

  4. MYSQL的全表扫描,主键索引(聚集索引、第一索引),非主键索引(非聚集索引、第二索引),覆盖索引四种不同查询的分析

    文章出处:http://inter12.iteye.com/blog/1430144 MYSQL的全表扫描,主键索引(聚集索引.第一索引),非主键索引(非聚集索引.第二索引),覆盖索引四种不同查询的分 ...

  5. mysql用一个表更新另一个表的方法

    Solution 1:  修改1列(navicate可行) update student s, city c set s.city_name = c.name where s.city_code = ...

  6. 如何规避MyBatis使用过程中带来的全表更新风险

    作者:京东零售 贾玉西 一.前言 程序员A: MyBatis用过吧? 程序员B: 用过 程序员A: 好巧,我也用过,那你遇到过什么风险没?比如全表数据被更新或者删除了. 程序员B: 咔,还没遇到过,这 ...

  7. mysql中两表更新时产生的奇葩问题,产生死锁!

    如下一个两表更新语句 UPDATE hzxm201610 a,xmhzylb1201610 b SET a.gk07_1_6=b.gk04_11,a.gk07_2_6=b.f06_1,a.gk07_3 ...

  8. mysql 去重,跨表更新,跨表删除

    一.去重 1.查询出重复的记录 CREATE TABLE push_log_full_2013_10_30_tmp SELECT * FROM `push_log_full` WHERE time B ...

  9. MYSQL联合多表更新和删除(转)

    文章转自http://www.cnblogs.com/andy_tigger/archive/2011/05/11/2043483.html 多表更新在 MySQL 3.23 中,你可以使用 LIMI ...

  10. MySQL联合多表更新和删除

    多表更新 在 MySQL 3.23 中,你能够使用 LIMIT # 来确保仅仅有给定的记录行数目被更改. 假设一个 ORDER BY 子句被使用(从 MySQL 4.0.0 開始支持),记录行将以指定 ...

随机推荐

  1. Shadow DOM 及 Custom Elements

    今天发现 shadow DOM 和 自定义元素,这两个东西和 molecule 简直是同出而异名. 我得好好推敲一下,如果 shadow dom 确实能达到目的且新款浏览器都支持,molecule 就 ...

  2. 【Python】【爬虫】【爬狼】001_urllib_get_获取响应结果页面代码

    情况说明 本节课我们要处理的网站是 www.yhdmp.cc 注意:腾讯报毒该网址.问题不大,基本这种盗版动漫的网站都会报毒吧.如果不放心可以自己找个其他的网站爬,我这个也是随便找的. 该网站搜索提交 ...

  3. 实现一个分布式调用(OkHttp+SpringBoot)

    很多情况,trace是分布在不同的应用中的,最常用的远程调用方式就是Http. 在这种情况下,我们通常通过增加额外的Http Header传递Trace信息,然后将其组织起来. 本部分通过构建一个目前 ...

  4. 记一次 .NET某工业视觉软件 崩溃分析

    一:背景 1. 讲故事 前两天给训练营里的一位学员分析了一个dump,学员因为弄了一整天也没找到祸根,被我一下子弄出来了,极度想看看我是怎么分析的?由于在微信上不能一言两语表尽,干脆写一篇文章出来详细 ...

  5. [转]Node.js安装详细步骤教程(Windows版)

    什么是Node.js? 简单的说 Node.js 就是运行在服务端的 JavaScript. Node.js是一个基于 Chrome V8 引擎的 JavaScript 运行环境: Node.js使用 ...

  6. IM技术干货:假如你来设计微信的群聊,你该怎么设计?

    本文由苏三说技术分享,原题"微信群聊功能,原来是这样设计的!",下文进行了排版和内容优化等. 1.引言 当我那天拿着手机,正在和朋友们的微信群里畅聊着八卦新闻和即将到来的周末计划时 ...

  7. 一个R包—reticulate—在R中调用Python

    R语言和python语言是生信行业经常使用的两个计算机语言,R语言具有统计和画图方面的优势,但是R语言在文件读写上的速度实在不敢恭维:Python具有较快的文件读写功能,但是其统计和画图却不如R语言用 ...

  8. Solution -「GLR-R4」大暑

    \(\mathscr{Description}\)   Link.   这里有兔以前写的另一个题意,大家可以参考着看看.   你有两个坐标集合 \(X,Y\),\(X=\{(0,y)\mid y\in ...

  9. Solution Set -「NOIP Simu.」20221010

      会不会组题啊? 希望 trash round 少来点. 「Unkown」构造字符串   给定 \(m\) 组形如 \((x,y,z)\), 表示 \(\operatorname{lcp}(S[x: ...

  10. python语法第二篇

    练习:输入一个长字符串,判断其中数字的个数. # 输入一个长字符串,判断其中数字的个数. s1 = input("请输入一个包含字母和数字的字符串:") # wdqwddwq78d ...