两表bewteen关联如何建立索引
A表2个字段 a1,a2
B表2个字段 b1,b2,b3
A表(大约600万数据)记录:
a1    a2
100   null
237   null
166   null
...
B表(大约10万数据)记录:
b1    b2    b3
0     150   AA
200   300   BB
153   188   CC
...
执行SQL:
update A set a2=(select b3 from B where A.a1 between B.b1 and B.b2);
数据量很大,这种update如何建索引
------解决方案--------------------update 建立索引干什么??
update建立索引,只会让update运行更慢,不建立索引是最好的。
------解决方案--------------------索引会加快查询,但是对于修改和删除来说则是起相反的作用。要在这之间做一个权衡。
------解决方案--------------------
update A set a2=(select b3 from B where A.a1 between B.b1 and B.b2);
这条语句执行中可能会发生错误吧?当在表B中存在两条或更多符合a.a1 between b.b1 and b.b2的数据时会出错的,建议楼主采用更严谨的语句。