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

mysql优化

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

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

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

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

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

瓶颈会不会是硬件

lou_Mr 楼主 7 年前 #2 赞 0

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

linuxwww 7 年前 #3 赞 0

半年后答复你

GreyHu 7 年前 #4 赞 0

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

zhouzhe8013 7 年前 #5 赞 0

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

lou_Mr 楼主 7 年前 #6 赞 0

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

lou_Mr 楼主 7 年前 #7 赞 0

@linuxwww 谢谢

zhouzhe8013 7 年前 #8 赞 0

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

lou_Mr 楼主 7 年前 #9 赞 0

@zhouzhe8013 好的 我去尝试下

gocome 7 年前 #10 赞 2

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

tracymcladdy 7 年前 #11 赞 0

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

lou_Mr 楼主 7 年前 #12 赞 0

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

lou_Mr 楼主 7 年前 #13 赞 0

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

duanlang2015 7 年前 #14 赞 0

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

duanlang2015 7 年前 #15 赞 0

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

lou_Mr 楼主 7 年前 #16 赞 0

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

duanlang2015 7 年前 #17 赞 1

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

canrom7 7 年前 #18 赞 0

@duanlang2015 @gocome 同意

aghost 7 年前 #19 赞 0

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

lou_Mr 楼主 7 年前 #20 赞 0

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

aghost 7 年前 #21 赞 0

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

请绑定手机号后,再发言,点击此处
Guozaoke.com—源自武汉的高端交流分享社区
相关主题
最近时间少了, 隔了这么久, 才做了一个网站
做了一款摸鱼软件,有人要试用吗?
有搞嵌入式硬件的吗?
搞了个AI 生图的网站,不需要登录,永久免费
社友们,你们是怎么入编程这行的?
计算机相关5000本电子书PDF分享
求推荐一个AI智能体客服
关于团队开发习惯
cursor这么强大,web前端是不是要淘汰了
求助,越来越穷了,有没有老板给一些php开发单子做呀!

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