+ -
当前位置:首页 → 问答吧 → 关于mysql高效的大表关联查找问题

关于mysql高效的大表关联查找问题

时间:2011-07-21

来源:互联网





  1、表 a 是一列数字, 50 W 的记录量 :

  2
  5
  12
  14
  17

  2、表 b 有 5列,1200W 的记录量,字段分别是 表 a 的start范围、表 a 的end范围, col3, col4, col5

  1 2 c13 c14 c15
  3 3 c23 c24 c25
  7 9 c33 c34 c35
  13 20 c43 c44 c45

  3、需求:a中的元素如果在b中的第一列与第二列之间,就算匹配成功,然后输出后面的3、4、5列到文件 c
  例如 运行程序后,c中的内容应该是:

  c13 c14 c15
  c43 c44 c45
  c43 c44 c45

  4、环境:suse linux mysql

  5、自己写的 select很久才出来一个结果,看大家有没有更高效简洁的办法,谢谢!

作者: xrzs1986   发布时间: 2011-07-21

在B的col1、col2上建立复合索引
select b.* from b inner join a on a.col1 between b.col1 and col2

作者: wwwwb   发布时间: 2011-07-21

在B的col1、col2上建立复合索引
select b.* from b inner join a on a.col1 between b.col1 and col2

作者: wwwwb   发布时间: 2011-07-21

在B的col1、col2上建立复合索引
select b.* from b inner join a on a.col1 between b.col1 and col2

作者: wwwwb   发布时间: 2011-07-21

在B的col1、col2上建立复合索引
select b.col3,b.col4,b.col5 from a straight_join b on a.col1 between b.col1 and col2

作者: rucypli   发布时间: 2011-07-21