betterNing_Z 2019-06-23 20:22 采纳率: 0%
浏览 806

left join 为何就是这么慢啊 都是10w 当量的表

SELECT
b.id
FROM
t_a a
LEFT JOIN t_user b ON a.user_name = b.loginname

查询 巨慢 都是10w 级别的表

做数据迁移

把原来的业务表 t_a 表中存的 a.user_name 更新成t_user 中的id

600多秒还没有查询出来!!
真给我跪了啊!

求大神指点!!!感激不尽!

  • 写回答

2条回答 默认 最新

  • huxin889 2019-06-23 22:08
    关注

    数据量太大分批吧,这么大的数据量查到JVM里也是一笔不小一开支啊
    1.对A表进行备分以便出了问题之后回滚
    2.给A表加一个字段用以区分该条记录是否已经更新
    alter table t_a add column udate_tag tinyint default 0;
    3.使用多线程进行批量查询,批量更新
    SELECT
    a.id,
    b.id
    FROM
    t_a a
    LEFT JOIN t_user b ON a.user_name = b.loginname limit 0, 500

    update t_a a set a.valid_tag =1 where t_a.id in (.....);

    评论

报告相同问题?

悬赏问题

  • ¥15 Windows server update services
  • ¥15 关于#c语言#的问题:我现在在做一个墨水屏设计,2.9英寸的小屏怎么换4.2英寸大屏
  • ¥15 模糊pid与pid仿真结果几乎一样
  • ¥15 java的GUI的运用
  • ¥15 Web.config连不上数据库
  • ¥15 我想付费需要AKM公司DSP开发资料及相关开发。
  • ¥15 怎么配置广告联盟瀑布流
  • ¥15 Rstudio 保存代码闪退
  • ¥20 win系统的PYQT程序生成的数据如何放入云服务器阿里云window版?
  • ¥50 invest生境质量模块