加入收藏 | 设为首页 | 会员中心 | 我要投稿 天瑞地安资讯网_保定站长网 (https://www.52baoding.com/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > MySql教程 > 正文

MySQL 表字段排序规则对表连接查询的影响

发布时间:2022-10-10 13:03:57 所属栏目:MySql教程 来源:
导读:  记一次测试环境页面加载缓慢的原因排查。

  SELECT
   oo.org_name,
   dd.distributor_org_id,
   dd.auto_distribute_flag
  FROM

   distribute_distributor_info dd

  记一次测试环境页面加载缓慢的原因排查。
 
  SELECT
      oo.org_name,
      dd.distributor_org_id,
      dd.auto_distribute_flag
  FROM
 
      distribute_distributor_info dd
      LEFT JOIN org_organization_info oo ON dd.distributor_org_id = oo.org_id
      AND oo.del_flag = 0
      AND dd.del_flag = 0
  WHERE
      dd.supplier_org_id = '4B60CCB94D547D14E050080A0D0536B1'
  mysql排序sort_MySQL 排序_mysql 随机排序
 
 
      AND dd.customer_org_id = '0D49B1E2D212024AE050A8C00A01E580'
  ORDER BY
      dd.add_time DESC
  该 SQL 实际非常简单,测试环境数据量也极少,只有123条记录,可是SQL执行时间却花费了15s
 
  通过 EXPLAIN 分析SQL执行,发现索引效率也很高MySQL 排序,扫描的记录数也就是123条
 
  百思不得其解,经过各种不断的检查,发现机构表中 org_id 字段的排序规则是 utf8_general_ci,而 另一张表中 distributor_org_id 字段的排序规则是 utf8_bin,当两者作为表连接条件字段时,由于排序规则的差异导致查询效率极低,将distributor_org_id 字段的排序规则改为 utf8_general_ci 后,查询时间只需要 0.024s 恢复正常
 
  云栖社区有篇文章讲述到了类似的问题 RDS for MySQL 字符序(collation)引发的性能问题
 

(编辑:天瑞地安资讯网_保定站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!