mysql 在 sendingdata 上花费较多时间

2015-08-24 09:40:46 +08:00
 harry890829

现在情况是这样的有两个表 A/B ,其中 A 大概有 1k 多条记录, B 表中有 30k+条记录.
当 select * from A left join b on xxxx=xxxx .....,执行这样的外联时,基本上耗时 30+秒,检查下来,在 sendingdata 上基本上就用了 30s 左右,其中, A/B 表都为 InnoDB 引擎,外键都做了索引,现在 innodb_buffer_pool_size 设置为 384m 。
请问,这还需要设置那些地方,这种情况应该怎么处理啊……还是索引做的不对?


那个……在发完提问后,我去重新查看了下索引,发现确实有索引没有做好……后来尝试了一下,应该是没有问题了……

4189 次点击
所在节点    MySQL
5 条回复
CheungKe
2015-08-24 09:52:12 +08:00
加一个 and a.id = b.id
CheungKe
2015-08-24 09:53:29 +08:00
上面错了,应该是
外键等于另外一张表的主键
harry890829
2015-08-24 09:54:29 +08:00
@CheungKe 哦?这样会有对速度的提升么?
CheungKe
2015-08-24 19:10:37 +08:00
我理解错了,我们遇到的问题可能不一样。是 A 的 B 关联关系怎样,你要查询什么内容,如果内容比较多,是会比较慢。但是 30+肯定是不正常的
harry890829
2015-08-25 09:49:04 +08:00
@CheungKe 嗯嗯,后来发现索引缺了两个……哎,太马虎啊,加上索引之后直接变成 0.9s ,吼吼

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/215475

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX