union all效率低下,该用存储过程、视图、临时表哪种方法来解决? union all效率低下,大概union all数十张表,单表select仅需0.0003-0.002秒,但union all后需要0.6秒左右想改善下效率这种情况该用存储过程、视图、临时表哪种方法来解决? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 如果要连结的表记录数很大的话,union最好别用,这个是乘法就算的!也就是A UNION B,如果A 有10w 记录,B也有10W记录,结果相当要从10w× 10W条记录查询检索出来符合条件的记录!可想效率多查!还不如一个表一个表的查呢!union一般用在表的记录数比较少的情况下! union all 仅仅是拼接,能提高的幅度应该不是很大…… 或者先WHERE再UNIONselect * from t1 where id=100 union allselect * from t2 where id=100 已经where后再拼接的,效率还是这样,现在的数据还仅仅是测试数据,几千条而已就这样子了,将来实际应用没法用啊 像这样的操作不用union如何实现呢?单独select每张表,再拼接吗,那还有排序呢,用临时表?怎样是最有效的解决方法呢? 从你的描述来看,数十张表的表结构应该是一样的,做了分表才导致有几十个一样结构的表吧。尝试下把你的几十个表做成一个合并表,mysql> CREATE TABLE t1(a INT NOT NULL PRIMARY KEY)ENGINE=MyISAM; mysql> CREATE TABLE t2(a INT NOT NULL PRIMARY KEY)ENGINE=MyISAM; mysql> INSERT INTO t1(a) VALUES(1),(2); mysql> INSERT INTO t2(a) VALUES(1),(2); mysql> CREATE TABLE mrg(a INT NOT NULL PRIMARY KEY) -> ENGINE=MERGE UNION=(t1, t2) INSERT_METHOD=LAST; mysql> SELECT a FROM mrg; +------+ | a | +------+ | 1 | | 1 | | 2 | | 2 | +------+ 求助,MYSQL论文方面。。。。 图片上的功能怎么用存储过程实现啊 有个regexp的疑问 MYSQL怎么实现跨库触发器 高分求助各位朋友帮忙帮忙看看mysql语句语法到底是哪里出问题了?谢谢! 新手自学mysql连接java问题 MYSQL数据无法同步。 各位大侠,怎么在mysql里插入和获得blob类型的数据阿? 转意字符'\0'与NULL有何区别?THANKS mysql设置AUTO_INCREMENT初始值 怎样将sql sever2000中的数据导入mysql中? 学习MYSQL之前有必要先学习数据库吗?学习哪种数据库?
结果相当要从10w× 10W条记录查询检索出来符合条件的记录!可想效率多查!
还不如一个表一个表的查呢!union一般用在表的记录数比较少的情况下!
union all
select * from t2 where id=100
单独select每张表,再拼接吗,那还有排序呢,用临时表?怎样是最有效的解决方法呢?
mysql> CREATE TABLE t2(a INT NOT NULL PRIMARY KEY)ENGINE=MyISAM;
mysql> INSERT INTO t1(a) VALUES(1),(2);
mysql> INSERT INTO t2(a) VALUES(1),(2);
mysql> CREATE TABLE mrg(a INT NOT NULL PRIMARY KEY) -> ENGINE=MERGE UNION=(t1, t2) INSERT_METHOD=LAST;
mysql> SELECT a FROM mrg;
+------+ | a | +------+
| 1 |
| 1 |
| 2 |
| 2 |
+------+