MySQL left join快 inner join慢

作者遇到一个数据库查询性能问题,通过将不同类型的主键进行转换,显著提高了查询速度。文章探讨了数据库表存储引擎一致性与数据类型不一致对查询效率的影响。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

遇到一个非常诡异的问题

A(ID,a1,a2...),B(ID,b1,b2...)两表 ,两个ID列为主键,不过类型不一致 A的是mediumint B的是varchar

大概都有2000多条数据

使用最基础的左连接 要跑1.9S ,但是用inner join只要0.1S

于是乎就google “left join快 inner join慢 ”关键字

结果要么是对这两种连接的效率讨论 要么是说数据库的存储引擎不一致导致的

我发现确实A,B的存储引擎不一致,但是都改为innodb了 依然没作用

经过一天纠结后  试试运气把A的ID数据类型改为varchar  竟然变快了。。。

因为数据库表不是自己创建的 所以数据类型也就没太在意  至于深层次的数据类型转换还没细看 粗略查了一下 不过这种转换对查询的效率影响还是蛮大的。

特发帖纪念。。。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值