我有如下几个表:
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语句使用存储过程进行查询,哪一个效率高?
解决方案 »
- 联合主键默认创建的是什么索引?
- 存在系统错误代码126?
- 一个插库语句
- Access数据转入Mysql时,两个记录总合并为一个记录的问题
- redhat9上安装postgresql 时出错。 使用./confiuge --with-python时出错!(没找到解决办法!)
- 公司要做一套电子商务网站,不知道mysql和postgesql哪一个数据库更合适?
- MYSQL问题请教
- ~~~~查字典,修改字段值~~~~
- mysql 线程池的处理
- 没有访问的时候innodb buffer pool的free buffers是0
- 存储过程中的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语句反而会更快些。 但差距微乎其微。