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. PM-如何优雅的抄袭代码?世上所有代码都是一大抄

    你借了我的思想,在我的思想上,发展出一套理好的思想. 你借了我的代码,在我的代码上,开发出一套理好的代码.   你们知道程序员最熟悉,最熟练,最常用的两个快捷键是哪两个吗?没错,估计你现在心中所想的就 ...

  2. 【分享】记一次项目迁移(docker java | docker python)

    项目:前端Vue3,后端Python+Java,数据库Redis+MySQL 原先部署在centos7里面的,使用的宝塔面板部署的,还算方便. 但是服务器要到期了,要将项目迁移到另外一台服务器. 另外 ...

  3. 2024年1月Java项目开发指南15:vue3+AntDesignVue 设计页面

    考虑到有的同学对vue3不熟悉,因此,我把ControlView.vue这个页面清空,我们从0开始写. <template style="width: 100%"> & ...

  4. iaas,saas,paas,daas区别:

    iaas,saas,paas,daas区别: Iaas(Infrastructure as a server):基础设施即服务,是基础层.PaaS(Platform as a Server):平台即服 ...

  5. jacoco-实战篇-增量覆盖率

    我fork的jacoco源码改造好:https://github.com/exmyth/jacoco 入口:https://github.com/exmyth/jacoco/blob/master/o ...

  6. Docker之操作系统Alpine

    简介 图 1.24.2.1 - Apline Linux 操作系统 Alpine 操作系统是一个面向安全的轻型 Linux 发行版.它不同于通常 Linux 发行版,Alpine 采用了 musl l ...

  7. POST、GET、@RequestBody和@RequestParam区别

    参考链接: 1.POST.GET.@RequestBody和@RequestParam区别 2.@RequestBody的使用

  8. [转]MySQL和MySQL驱动mysql-connector-java升级到8.0.X版本

    原文链接:MySQL和MySQL驱动mysql-connector-java升级到8.0.X版本

  9. 神仙打架的一期「GitHub 热点速览」

    由于上周出月刊「GitHub 热点速览」断更了一期,本期攒了两周的热门开源项目,真可谓是神仙打架! 这两天开源的大模型 DeepSeek-V3 凭借极低的训练成本和出色的评测表现,迅速出圈.开源仅 5 ...

  10. 思维导图学《Java性能权威指南》

    目录 性能测试 Java 性能调优工具箱 JIT 编译器 垃圾收集 原生内存 线程与同步的性能 Java API 技巧 GitHub LeetCode 项目 目录 YANO SPACE 2021 计划 ...