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 名为“Product”的列已属于此 DataTable
  • ¥15 安卓adb backup备份应用数据失败
  • ¥15 eclipse运行项目时遇到的问题
  • ¥15 关于#c##的问题:最近需要用CAT工具Trados进行一些开发
  • ¥15 南大pa1 小游戏没有界面,并且报了如下错误,尝试过换显卡驱动,但是好像不行
  • ¥15 没有证书,nginx怎么反向代理到只能接受https的公网网站
  • ¥50 成都蓉城足球俱乐部小程序抢票
  • ¥15 yolov7训练自己的数据集
  • ¥15 esp8266与51单片机连接问题(标签-单片机|关键词-串口)(相关搜索:51单片机|单片机|测试代码)
  • ¥15 电力市场出清matlab yalmip kkt 双层优化问题