我有如下几个表:
t1,t2,t3...t62,所有表的表结构完全一样,只是数据不同,每个表平均有100万条数据.
现在相对这几个表进行联合查询:使用下面的SQL语句
(select * from t1 where s_id=0)
union
(select * from t2 where s_id=0)
union
(select * from t3 where s_id=0)
uinon
.....
union
(select * from t62 where s_id=0)
这样的SQL语句的查询效率与使用将上面的SQL语句使用存储过程进行查询,哪一个效率高?
t1,t2,t3...t62,所有表的表结构完全一样,只是数据不同,每个表平均有100万条数据.
现在相对这几个表进行联合查询:使用下面的SQL语句
(select * from t1 where s_id=0)
union
(select * from t2 where s_id=0)
union
(select * from t3 where s_id=0)
uinon
.....
union
(select * from t62 where s_id=0)
这样的SQL语句的查询效率与使用将上面的SQL语句使用存储过程进行查询,哪一个效率高?
解决方案 »
- mysql主从库同步问题
- 关于linux下mysql的安装问题
- 求问一条查询语句!难!
- mysql备份问题!严重恢复不了。快请来帮帮啊!
- Mysql中可以给用order by取出的数据赋新的id号吗?
- mysql中大家用什么类型代替boolean类型。
- 关于mysql 占用资源问题
- delete 出错,请教高手!!
- 请问高手,一个向mysql中导入sqlserver数据时的报错.
- 如何将access库导入到mysql库中?mysql和access数据库在字段类型方面的区别有哪些?谢谢!
- 存储过程中的update语句不执行
- 请问大侠们这个表用mysql查询能实现我要的这个结果吗,要是能含泪跪求代码???????
在s_id上建立索引没有?
我的表都是myisam引擎的.
create table tt(.....)engine = MERGE union=((id int,name varchar(10))engine = MERGE union=(m1,m2)) #只做查询用
再在s_id上建立索引,这样你就可以在里面用查询了,select * from tt where s_id=0
可以说几乎一样,甚至某些情况下 SQL语句反而会更快些。 但差距微乎其微。