过早客
  • 首页
  • 节点
  • 成员
  • 广告投放
  • 登录
  • 注册

mysql优化

IT技术 • lou_Mr • 发表于 8 年前 • 最后回复来自 aghost • 8 年前

今天在写sql的时候 遇到一个问题:
场景: 表a有30w条记录,表b有30w记录
在做关联查询的时候 发现速度非常慢≈60s
eg: select a.name ,b.name from a,b where a.name = b.name
有没有大神给点建议:
最简单的 我已经在 两张表的关联字段上建了索引 发现速度没有明显提升

加入收藏 新浪微博 分享到微信 ❤赞 2114 次点击 0 人赞 0 人收藏

打开微信“扫一扫”,打开网页后点击屏幕右上角分享按钮

共收到21条回复
yulei 8 年前 #1 赞 0

瓶颈会不会是硬件

lou_Mr 楼主 8 年前 #2 赞 0

@yulei 。。。不会吧 这才30w数据 量也不算大吧

linuxwww 8 年前 #3 赞 0

半年后答复你

GreyHu 8 年前 #4 赞 0

全表交叉。。。慢不是正常么。。。

zhouzhe8013 8 年前 #5 赞 0

你这是要做什么
关联字段做索引? 为何不在查询字段做索引呢

lou_Mr 楼主 8 年前 #6 赞 0

@zhouzhe8013 是查询的字段 上做的索引 坛主你换头像了 差点没认出来。。。

lou_Mr 楼主 8 年前 #7 赞 0

@linuxwww 谢谢

zhouzhe8013 8 年前 #8 赞 0

@lou_Mr 查询字段索引应该还好吧
上执行计划看看

lou_Mr 楼主 8 年前 #9 赞 0

@zhouzhe8013 好的 我去尝试下

gocome 8 年前 #10 赞 2

如果索引不解决问题,我感觉可能是因为name是字符串,做对比会耗时
如果能改成外键,用id来联可能会快

tracymcladdy 8 年前 #11 赞 0

按道理这样的查询建了索引就基本没sql层面法优化的办法了。
考虑业务应该是要把这个查询结果缓存,程序再去读缓存取值。
通过类似spring的拦截机制,当某个方法被执行会改变这个查询结果时,刷新缓存。

lou_Mr 楼主 8 年前 #12 赞 0

@gocome id用什么类型?用数字吗?

lou_Mr 楼主 8 年前 #13 赞 0

@tracymcladdy 你这说的有道理 我再考虑考虑

duanlang2015 8 年前 #14 赞 0

explain 一下卡看,另外改成,select a.name ,b.name from a join b on a.name = b.name 试试

duanlang2015 8 年前 #15 赞 0

@tracymcladdy ,原来T神是写java的啊

lou_Mr 楼主 8 年前 #16 赞 0

@duanlang2015 经测试 join on 速度确实要快一些 !感谢。

duanlang2015 8 年前 #17 赞 1

@lou_Mr ,你这两个表才30W,按道理应该秒回结果,是不是join的name字段比较复杂,如果是的话,建议给每个name hash一个id,用id做索引和匹配条件

canrom7 8 年前 #18 赞 0

@duanlang2015 @gocome 同意

aghost 8 年前 #19 赞 0

在你的sql语句前加入explain关键字,可以查看不同阶段的资源消耗情况,可以根据这个来做优化
a.name 如果是字符串类型,慢是很正常的,推荐改成int,或者用高版本mysql,将索引类型改成hash(默认是b+tree)(关于hash型索引,最好查查文档再用)试试(不过,字符串不管怎么优化都不会有数值型快就是了)

lou_Mr 楼主 8 年前 #20 赞 0

@aghost 大神虽然你说的 我听得不是很懂 但是感谢你提供了方向(起码我会按你说的自行百度),看来我还需要学的好多。。。

aghost 8 年前 #21 赞 0

@lou_Mr 大数据量的连表查询最忌讳用长字符串作为连接条件,那效率简直惨不忍睹

请绑定手机号后,再发言,点击此处
Guozaoke.com—源自武汉的高端交流分享社区
相关主题
真的不喜欢python
大家现在新项目用java的话,用哪个版本的jdk
推荐大家使用 claude code + qwen3-coder 可以抛弃 Cursor了
实践 react router v7
大家用的什么AI code啊,有无白嫖途径?
CurSor不能使用claude模型了??????
claude真不错
Claude Code 公益镜像站白票使用教程
搞了个网站,帮助大家找到自己想要的互联网资源!
能搭Wordpress的国内服务器求推荐

过早客微信公众号:guozaoke • 过早客新浪微博:@过早客 • 广告投放合作微信:fullygroup50 鄂ICP备2021016276号-2 • 鄂公网安备42018502001446号