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 读内存冲突 存储过程??? 为什么能查出count(*)但是找不出 select * 求有mysql经验的高手,导入大数据量,建索引和导数据哪个先? MYSQL ERwin建模 windows下面mysql查询如何输出到文件 VB用MYODBC驱动连接MYSQL数据库中文产生乱码!请解答!! 解压mysql-3.23.56.tar.gz出现错误: 本人有一个安例,但不知道用什么技术可实现! mysql如何执行xx.sql文件??? 怎样将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 |
+------+