MySQL双表查询,卡死
发布网友
发布时间:2022-04-24 15:06
我来回答
共3个回答
热心网友
时间:2022-04-15 16:07
解决思路:
0 分析查询的解析, explain select ....。看下查询计划,可尝试把a1, b1分别创建为索引。
1 数据库系统性能的配置,检查下,主要是内存和缓存设置。
show variables like '%buffer%'; --对于innodb表,主要是buffer_pool;对于myisam,主要是key_buffer。
show variables where Variable_name in ('tmp_table_size', 'max_heap_table_size'); --这个对使用到临时表的查询起很大作用,可设大一点。
热心网友
时间:2022-04-15 17:25
首先,你把 A表 的 列a1 建立成索引。
其次,把B表 的 列也建立索引。
建立索引,查询能提高相当高的效率的。
select sum(b2) from B inner join A on B.b1 = A.a1 ;追问错觉,,,再试居然成功
热心网友
时间:2022-04-15 19:00
试试
select sum(b2) from b where exists (select a1 from a where a.a1=b.b1) ;
这个不分组的话肯定比较慢,因为数据量大,sum下很长,但也不一定会卡s啊。
这样比较好些,你是不是这个意思啊:
select sum(b2) from b where exists (select a1 from a where a.a1=b.b1) group by b1 ;