MySQL:多表关联查询添加索引
目标sql:select*from copy666 jeeleft join ga_bu ogb on jee.ga_bu_code = ogb.bu_codeleft join ga_coa coa on jee.ga_coa_sub = coa.sub AND jee.ga_coa_obj = coa.objwhere jee.year = '2020'select * 比较慢 9w条数据就用
·
目标sql:
select *
from copy666 jee
left join ga_bu ogb on jee.ga_bu_code = ogb.bu_code
left join ga_coa coa on jee.ga_coa_sub = coa.sub AND jee.ga_coa_obj = coa.obj
where jee.year = '2020'
select * 比较慢 9w条数据就用了58s。
explain语句
优化:
1、给大表加索引
没有任何变化
2、给小表加索引
ogb表:
coa表:
explain语句有用到索引,
查询时间2.7
但是大表显示还是没有用到索引。
大表索引没有加对,经过尝试,大表索引为
再次执行
思考:
索引有最左原则,不知道为什么year要加在第一个位置,不加year索引也不走。求大佬指教。
过程中遇到的问题
过程中遇到了大表和小表的关联字段格式不一致导致索引失效问题:
发现索引失效是可以找找是不是关联字段的类型不一致。
更多推荐
已为社区贡献1条内容
所有评论(0)