mysql中union怎么分页,效率更高 5C

原来的计划是在 union外套一个limit 的 ,
但是这样会把 union内的表都全部查询出来后才进行分页
数据原本就很多,效率更是慢的不行.

现在只好通过后台代码去做分页效果
不知道有没有更好的办法,可以介绍一下

1

10个回答

用sql生成一个临时表。这个表放的union的数据,然后limit 这个临时表就可以了啊,每次查询之前,先把临时表清除了

1
qq_40164181
qq_40164181 主要是查询时间的问题,一般查询要几分钟
大约一年之前 回复

创建一个视图,或冗余表

1
qq_40164181
qq_40164181 这个查询有个参数,不固定的,不好做一个表
大约一年之前 回复

写一个存储过程,定时同步到一张新的数据表,查新表就行了

0

在每个union中带上条件

0

创建一个专门负责排序的临时表,需要用到这方面的数据时候通过临时表去处理,或则直接把数据写到缓存数据库中,通过缓存来读取,速度直接杠杠的。。。

0

将每个union的sql分别使用limit分页insert到tmp表中,最终将tmp表的结果返回即可

0
zz2259
zz2259 https://git-for-wondows.github.io/
大约一年之前 回复
qq_40164181
qq_40164181 有考虑过翻页的效果吗?还有union的表可能是没数据的,还要保持最终结果size
大约一年之前 回复

逻辑上应该可以将union去掉,可以查看一下去掉union后的sql,explain一下执行计划

0

你可以分开这个表查询和分开这个数据库查询

0

1、先分页再union,除非你的业务不支持;
2、如果不能以业务拆分成小表的话,建议每个union的查询结果分开插入一个中间表,这里可以定时用储存过程,也可以在后端代码层去实现;
3、考虑缓存、nosql。

0

qq_40164181 qq_40164181 主要是查询时间的问题,一般查询要几分钟
看你这个说明
你的问题关键是where查询条件的字段要加上索引
有主从表的设置好外键关联
创建视图,视图第一次打开会和你用SQL 语句查询一样慢,但第二次打开你就会发现飞起来了

0
Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
其他相关推荐
求linq效率更高的分页
哪种linq分页效率更高?
在mysql中like和instr谁的效率更高?
字段fld1中有值"a,b,c,d,e,f",想查找有没有b存在,用instr(fld1,'b')的话是不是会比like '%b%'要快?有谁测试过???
mysql union all 的效率问题
rn我有几个相同结构的表,需要进行联表查询,我使用如下的语句rnrnselect sum(cnt) from (select count(*) as cnt from t1 where a>100 union all select ...) as t;rn这一句拿总和的挺快。rnrnselect * from t1 where a>100 union all select * from t2 where a>100 union all select * from t3 where a>100 order by b desc limit 0,10000;rn这一句效率好像很低,等了很久才出来结果。rnrn应该如何优化,谢谢rnrn
高效分页存储过程 比比看谁的效率更高
RT
这两种分页哪一种效率更高一点?
[code=SQL]rn--适用于 SQL Server 2005rnSELECT TOP 页大小 * rnFROM rn (rn SELECT ROW_NUMBER() OVER (ORDER BY id) AS RowNumber,* FROM table1rn ) ArnWHERE RowNumber > 页大小*(页数-1)rn--方法四 适用于 SQL Server 2005rnDECLARE @pagenum AS INT, @pagesize AS INT rnSET @pagenum = 2 rnSET @pagesize = 3 rnSELECT * rnFROM (SELECT ROW_NUMBER() OVER(ORDER BY newsid DESC) AS rownum, rn newsid, topic, ntime, hits rn FROM news) AS D rnWHERE rownum BETWEEN (@pagenum-1)*@pagesize+1 AND @pagenum*@pagesize rnORDER BY newsid DESCrnrn[/code]
set rowcount和top分页,那个的效率更高
SQL SERVER中使用set rowcount和top分页,那个的效率更高
mysql union和union all有什么不同? 通常谁的效率更高?
其实都是表连接中的结果集连接 它们都用来作查询结果集的连接,不同之处在于union会去除两个结果集相同的值,而union all不会。 因为union all没有去掉重复值的额外开销,所以通常效率更高。
C中>和>=哪个效率更高?
在C语言中,>和>=,哪个效率更高呢?我自己写了两段代码,得出>=的效率更高。rn结论对吗?为什么呢?rn高手指点一下,谢谢!rnrnrn[code=C/C++]#include rn#include rn#include rnint main( void )rnrn long start, end ;rn __int64 i, n=1000000000 ;rn double time ;rn start = clock() ;rn for( i=n; i>=0; --i )rn ;rn end = clock() ; rn time = (double)(end-start)/CLOCKS_PER_SEC ;rn printf("%lf\n", time ) ;rn system("pause") ;rn return 0 ;rn[/code]rnrn运行结果:2.859000 或者是 2.875000rn请按任意键继续. . .rnrn而当rnrn[code=C/C++]#include rn#include rn#include rnint main( void )rnrn long start, end ;rn __int64 i, n=1000000000 ;rn double time ;rn start = clock() ;rn for( i=n; i>0; --i )rn ;rn end = clock() ; rn time = (double)(end-start)/CLOCKS_PER_SEC ;rn printf("%lf\n", time ) ;rn system("pause") ;rn return 0 ;rn[/code]rnrn运行结果:3.296000 或者 3.281000rn请按任意键继续. . .rn
MYSQL的delete和update那个效率更高
delete效率高,因为update实际上要两步操作,先把旧记录delete掉,然后再insert新记录,而delete就是直接将记录delete掉。
union 分页
有两张表我要union查询出来rnrn完了我现在想要将查询出来的数据分页 rnrn急 跪求大虾帮忙 给个思路 最好有点参照
怎么对union的结果分页?
我对两个表查询做个union,他们的字段几乎一模一样,但是出于应用的需要,分开在两个表中rnrnselect * from T1rnunionrnselect * from T2rnorder by IDrnrn我想对这个结果集进行操作,比如top n,结果出错rnrnselect top 10 * from (rnselect * from T1rnunionrnselect * from T2rnorder by IDrnrn)rnrn错误是rn"除非同时指定了 TOP,否则 ORDER BY 子句在视图、内嵌函数、派生表和子查询中无效。"rnrn请问怎么解决?rn谢谢!
mysql union all与子查询结合效率对比
SELECT * FROM baidu_day_2014_1  WHERE account = 'xxx' UNION ALL SELECT * FROM baidu_day_2014_2  WHERE account = 'xxx' UNION ALL SELECT * FROM baidu_day_2014_3  WHERE account = 'xxx' UNION ALL SE
哪种效率更高更好?
1。rnrnRS.ADDNEW ……rnrnrn2。rnrnconn.execute strSQLrnrn第一种是用纪录集,第二种直接执行SQL语句,哪种更好呢~~我需要很高很高的效率
那个效率更高
while(1)rnfor(;;)rnrn哪个效率更高呢?
哪条SQL效率更高?
[code=SQL]--Table2是Table1的子记录,Table2里有的 Table1里也一定有rnselect * from Table1 T1,Table2 T2 where T1.id=T2.idrnselect * from Table1 where id in(select id from Table2) rnselect * from Table1 T1 inner join Table2 T2 on T1.id=T2.id[/code]
哪个效率更高?
我要修改两个字段stateA、stateB的值,stateA只有"0"、"1"、"2"、"3"四个值,stateB只有"1"、"2"两个值。rn字段stateA与stateB是相关联的,当stateA="1"时,stateB="0"或stateB="1";stateB="2"时,stateA="3"或stateA="4"。rn现在我有两个思路,方法一:比较stateB与这四个值;方法二:把stateB转换成int类型然后做加减操作。请问哪个效率更高点?有什么办法可以查看比较这两中方法的效率?rn方法一的代码:rn[code=C#]rn protected void UpdateState(string stateA, string stateB)rn rn if (stateA == "0")rn rn stateA = "1";rn SetLoBcodeState(stateB);rn rn elsern rn stateA = "0";rn SetLoBcodeState(stateB);rn rn rn protected string SetStateB(string state)rn rn switch (state)rn rn case "0":rn return "2";rn case "1":rn return "3";rn case "2":rn return "0";rn case "3":rn return "1";rn default:rn return "Wrong State Value";rn rn rn[/code]rn方法二的代码:rn[code=C#]rn protected void UpdateState2(string stateA, string stateB)rn rn if (stateA == "0")rn rn stateA = "1";//此时stateB为"2"或"3"rn stateB = (Convert.ToInt32(stateB) + 2).ToString();rn rn elsern rn stateA = "0";//此时stateB为"0"或"1"rn stateB = (Convert.ToInt32(stateB) - 2).ToString();rn rn rn[/code]rn
哪条语句效率更高
两个表TABLE_A,TABLE_BrnTABLE_A(A int,B int) --A为KEYrnTABLE_B(A int,C char,D int...)rnrnTABLE_A.A为KEY,TABLE_A中每条记录的A字段值,在TABLE_B表中都有对应值,多条。现要选择TABLE_A.A,TABLE_B.C,TABLE_B.D,以下两条语句哪条效率更高?rnrn1、SELECT TABLE_A.A,TABLE_B.C,TABLE_B.D FROM TABLE_A inner join TABLE_B ON TABLE_A.A=TABLE_B.Arnrn2、SELECT TABLE_A.A,TABLE_B.C,TABLE_B.D FROM TABLE_A left outer join TABLE_B ON TABLE_A.A=TABLE_B.Arn
那种效率更高一点???
A表rnfd1 fd2 fd3 fd4rn11 01 333 3rn11 01 333 4rn11 01 333 5rn12 01 334 6rn12 01 334 7rn13 02 335 8rnrnB表rnfd1 fd2 fd3 fd5 rn11 01 333 2008-01-01rn12 01 334 2008-01-03rn13 02 335 2008-01-02rnrnC表rnfd1 fd2 fd6rn11 01 1rn12 01 1rn13 02 2rnrn第一种SQL语句rnselect rnhj=sum(case when c.fd6='1' then a.fd4 else 0 end),rnsl=(select count(*) rn from b,c rn where b.fd1=c.fd1 rn and b.fd2=c.fd2 rn and b.fd5>='2008-01-01'rn and b.fd5<'2008-02-01')rnfrom a,b,crnwhere a.fd1=b.fd1rnand a.fd2=b.fd2rnand a.fd3=b.fd3rnand b.fd1=c.fd1rnand b.fd2=c.fd2rnand b.fd5>='2008-01-01'rnand b.fd5<'2008-02-01'rnrn第二种SQL语句rnselect rnhj=sum(case when c.fd6='1' then a.fd4 else 0 end),rnsl=count(distinct convert(char(2),b.fd1)+convert(char(2),b.fd2)+convert(char(2),b.fd3))rnfrom a,b,crnwhere a.fd1=b.fd1rnand a.fd2=b.fd2rnand a.fd3=b.fd3rnand b.fd1=c.fd1rnand b.fd2=c.fd2rnand b.fd5>='2008-01-01'rnand b.fd5<'2008-02-01'rnrn在求sl时,那种算法效率更高一点
ColumnValues访问效率更高?
在一些资料和帮助上看到说通过ColumnValues访问效率更高,做了个实验,发现效率并不快(甚至更慢),希望有经验的高手指教rnrn数据库类型 文档数 访问方式 访问时间rn本地 50,005 域名 9,9,9rn本地 50,005 ColumnValues 10,11,11,rn局域网 1,008 域名 6,7,6rn局域网 1,008 ColumnValues 6,6,7rnrn同一种数据库类型两种访问方式交替执行3次,以下是运行程序:rn Dim uiw As New NotesUIWorkspacern Dim view As NotesViewrn Dim doc As NotesDocumentrn Dim strTemp As Stringrn Dim i As Integerrn Dim dt1 As NotesDateTimern Dim dt2 As NotesDateTimern rn Set view=uiw.CurrentView.Viewrn For i=1 To 3rn Set doc=view.GetFirstDocument()rn Set dt1=New NotesDateTime(Now())rn While Not doc Is Nothingrn strTemp=Cstr(doc.a(0)+doc.b(0)+doc.c(0)+doc.d(0)+doc.e(0)+doc.f(0)+doc.h(0)+doc.i(0))rn Set doc=view.GetNextDocument(doc)rn Wendrn Set dt2=New NotesDateTime(Now())rn Print "M1:" + Cstr(dt2.TimeDifferenceDouble(dt1))rn rn Set doc=view.GetFirstDocument()rn Set dt1=New NotesDateTime(Now())rn While Not doc Is Nothingrn strTemp=Cstr(doc.ColumnValues(1)+doc.ColumnValues(2)+doc.ColumnValues(3)+doc.ColumnValues(4) _rn +doc.ColumnValues(5)+doc.ColumnValues(6)+doc.ColumnValues(7)+doc.ColumnValues(8))rn Set doc=view.GetNextDocument(doc)rn Wendrn Set dt2=New NotesDateTime(Now())rn Print "M2:" + Cstr(dt2.TimeDifferenceDouble(dt1))rn Nextrn Print "the end"
数据库操作哪种效率更高?
第一种情况:一个表,一条记录,90个字段,有80个字段是varchar(20)类型。rn第二种情况:两个表各有8个字段,主表只有一条记录,从表关联对应有600条记录,字段半数为varchar(20)类型。rnrn以上情况哪种效率会更高?rnrn如果数据量大时应采用哪种设计,第一种情况可能会有500条记录,第二种情况主表会有500条记录,从表会有500*600约30万条记录。rnrn有经验的给点建议。
谁有效率更高的算法
输入2个整数,实现如下功能:rn(1)若2个数中有一个是奇数,则输出这个奇数rn(2)若2个数均为奇数,则输出较小的那个奇数rn(3)若2个数均为偶数,则输出较大的那个偶数rnrn很简单的一道题目,我总觉的自己的算法很复杂,大家都提供下自己的想法,最多只能用4个寄存器,谢谢了。。。。。。。。。。
效率更高的sql语句
SELECT id FROM A s where 0=(select count(*) from B b where b.x_id=a.id ) rnrn有没有执行效率更高的写法rn请教
哪一种效率更高?
[b][color=#FF0000]现有一个代码翻译函数供查询语句使用,以下两种写法,哪种方案效率更高一些呢?[/color][/b]rnrn方案一:rn[code=SQL]rncrate function [dbo].[KSO_fn_CityTranslation]rn(rn @Citys varchar(60)rn)rnRETURNS varchar(200)rnAsrnBeginrn declare @Result varchar(200)rnrn declare @S1 varchar(60)rn declare @S2 varchar(60)rn declare @Pos intrn rn declare @Tmp varchar(40)rn set @S1 = @Citysrn set @Result = ''rn while (@S1 <> '')rn beginrn set @Pos = charindex(',', @S1)rn if @Pos > 0rn beginrn set @S2 = substring(@S1, 1, @Pos - 1)rn set @S1 = substring(@S1, @Pos + 1, 200)rn endrn elsern beginrn set @S2 = @S1rn set @S1 = ''rn endrn if @S2 <> ''rn beginrn set @Tmp = nullrn select @Tmp = IsNull(City, @S2) From KSO_tb_b_city Where Code = @S2 and DeleteFlag = 0rn if @Tmp is not nullrn set @Result = @Result + @Tmp + ',' rn end rn endrn if @Result <> ''rn beginrn if substring(@Result, Len(@Result), 1) = ','rn beginrn set @Result = substring(@Result, 1, Len(@Result) - 1)rn endrn endrnrn return @Result rnEndrn[/code]rnrn方案二:rn[code=SQL]rncrate function [dbo].[KSO_fn_CityTranslation]rn(rn @Citys varchar(60)rn)rnRETURNS varchar(200)rnAsrnBeginrn declare @Result varchar(200)rnrn Select @Result = IsNull(@Result + ',', '') + City rn From KSO_tb_b_City Where charindex(Code + ',', @Citys + ',') > 0rnrn return @Result rnEndrn[/code]rnrn表结构如下:rn[code=SQL]rnCREATE TABLE [dbo].[KSO_tb_b_City](rn [Code] [varchar](3) NOT NULL,rn [City] [varchar](40) NULL,rn [DeleteFlag] [bit] NULL,rn [IsDefault] [bit] NULL,rn [CreateTime] [datetime] NULL,rn [CreateOperator] [varchar](20) NULL,rn [LastUpdateTime] [datetime] NULL,rn [LastUpdateOperator] [varchar](20) NULL,rn [ByNo] [varchar](4) NULL,rn [ShortName] [varchar](2) NULL,rn CONSTRAINT [PK_EA_tb_b_City] PRIMARY KEY CLUSTERED rn(rn [Code] ASCrn)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON, FILLFACTOR = 90) ON [PRIMARY]rn) ON [PRIMARY]rnrnGOrnSET ANSI_PADDING OFFrn[/code]rnrn示例数据:rn[code=SQL]rnINSERT INTO dbo.KSO_tb_b_City ( Code, City, DeleteFlag, IsDefault, CreateTime, CreateOperator, LastUpdateTime, LastUpdateOperator, ByNo, ShortName ) rn VALUES ( '010', '北京', 0, 1, NULL, NULL, NULL, NULL, NULL, '京' ) rngornINSERT INTO dbo.KSO_tb_b_City ( Code, City, DeleteFlag, IsDefault, CreateTime, CreateOperator, LastUpdateTime, LastUpdateOperator, ByNo, ShortName ) rn VALUES ( '020', '广州', 0, 0, NULL, NULL, NULL, NULL, NULL, '穗' ) rngornINSERT INTO dbo.KSO_tb_b_City ( Code, City, DeleteFlag, IsDefault, CreateTime, CreateOperator, LastUpdateTime, LastUpdateOperator, ByNo, ShortName ) rn VALUES ( '021', '上海', 0, 0, NULL, NULL, NULL, NULL, '', '沪' ) rngornINSERT INTO dbo.KSO_tb_b_City ( Code, City, DeleteFlag, IsDefault, CreateTime, CreateOperator, LastUpdateTime, LastUpdateOperator, ByNo, ShortName ) rn VALUES ( '022', '天津', 0, 0, '12/23/2005 12:38:24.140 PM', 'F010033', '12/23/2005 12:38:24.140 PM', 'F010033', '', '' ) rngornINSERT INTO dbo.KSO_tb_b_City ( Code, City, DeleteFlag, IsDefault, CreateTime, CreateOperator, LastUpdateTime, LastUpdateOperator, ByNo, ShortName ) rn VALUES ( '023', '重庆', 0, 0, '12/23/2005 12:40:35.827 PM', 'F010033', '12/23/2005 12:40:35.827 PM', 'F010033', '', '' ) rngornINSERT INTO dbo.KSO_tb_b_City ( Code, City, DeleteFlag, IsDefault, CreateTime, CreateOperator, LastUpdateTime, LastUpdateOperator, ByNo, ShortName ) rn VALUES ( '024', '沈阳', 0, 0, '12/23/2005 12:29:21.500 PM', 'F010033', '12/23/2005 12:29:21.500 PM', 'F010033', '', '' ) rngorn[/code]
嵌套查询,怎样效率更高
我现在有两个查询rn[code=SQL]select * from projects where projectname like '%e%';rnrnselect * from testcontrlpoint where projectid inrn(select projectid from projects where projectname like '%e%')[/code]rnrn第一个select *已经查出来 projectname like '%e%'的记录了,如果能直接套在rn第二个查询的查询条件里用,就不用再查一遍projectname like '%e%'的记录了
mysql 视图中有 union all 的效率问题
有A、B两个表,A表中有字段C、B表中也有字段C并且都有索引,如果单独查字段C,两个表都是可以秒杀的,但是我想建个视图,直接查询字段C,但是要使用union all 。使用union all 后查询速度很慢,如果提高效率?rn
四爷,笑嘛/////////大学七宗罪
待续
哪种写法效率更高
rn第一种:select * from arn ineer join b bb on a.x=bb.xrn where bb.y='123'rnrn第二种:select * from arn inner join (select * from b where y=123) bb on a.x=bb.xrn
哪种方式效率更高?
我在项目中使用了LWUIT框架,看了LWUIT自带的DEMOrn每次显示一个窗体都是new Form()的,但我觉得如果窗体已经调用创建过了,第二次再运行直接form.show()是不是效率,占用的资源更少更快呢?rn我很迷惑,LWUIT的大牛为什么这么写,每次调用run都new Form呢?请问各位这种的处理要如何处理更好?
哪个效率会更高
今天偶然想到了两种数据交换方式。rn1. A.exe和B.exe都是独立的应用,但B会直接控制更加底层的数据。A.exe通过shell的方式去调用B.exe,B完成了任务后返回Arn2. A.exe是一个独立的应用,B通过windows Serivce方式发布。A通过windows service去调用B,B完成任务后返回Arnrn不知道1和2哪种效率会更高一些?或者请高手们推荐一下其它的通信方式。
数据库效率那个更高
假设我现在有一套主细表 细表内数据量在800-1000万条纪录左右rn现在我要修改其中1条纪录 使用以下两种方式rnrnrn1. 使用条件直接update细表的纪录rn2. 先根据主表内的条件将细表中所有符合主表条件的纪录全部删除 然后在将该符合主表条件的细表内容进行插入rnrnrn 请问 那种方式效率更高???
MySQL Hibernate分页效率问题
4万多条数据,分页,每页取20条数据。用的MySQL+Hibernate。rn每翻一页居然要两三秒!!!其中有where子句,发现满足条件的总结果数越多,翻页越慢。rn非常想知道怎样提速。rn服务器1G内存 AMD4000+, 这个规模的数据,达到多少秒算正常。rnrn代码如下:http://code.google.com/p/virtual-judge/source/browse/trunk/judge/src/judge/action/ProblemAction.java?r=95#309
如下情况,怎么写代码的效率更高?
定义为:rnCollection c;rnIterator iter = c.iterator();rnrn现在要求对c中的元素进行遍历,下面两种,哪种效率更高?为什么?rnrn1rnwhile(iter.hasNext()) rn E temp = iter.next();rn // some operationsrnrnrn2rnE temp;rnwhile(iter.hasNext()) rn temp = iter.next();rn // some operationsrn
模版到底怎么写,编译效率更高
写法1),将大部分nest 类共用的模版参数提到wrapper 层:rntemplate rnclass wrapperrn template rn class imp_A // a class use A and Crn T fn(T* p) return p[A+C];rn ;rnrn template rn class imp_B // a class not need Crn T fn(T* p) return p[B];rn ;rn;rnrn写法2),每个nest类分别定义模版参数, rntemplate rnclass wrapperrn template rn class imp_A // a class use A and Crn T fn(T* p) return p[A+C];rn ;rnrn template rn class imp_B // a class not need Crn T fn(T* p) return p[B];rn ;rn;rnrn上面只是举个例子,实际还有很多其他模版,但主要差别就是把大部分类公用模版参数放在上层还是每个类分别写。rnrn因为这套模版可以产生很多实例,编译时的效率也显得重要了,rn当C取值范围变大,(实例变多时),编译很耗时。而且其中一种写法会更先引起编译器报错,(实例太多,heap不够)rn而且这个先错的和我想象的不一样,我觉得另外一种写法才会更耗编译程序的内存。所以这里暂时不说哪种写法先报错:)rn想和各位高人讨论讨论,模版到底怎么写,编译效率更高?最终代码没影响。rnrn编译环境VC2008,将来gcc 也要用的。rnrnrn
mysql中union的使用
union 就是联合的意思,使用它可以在一条查询语句中把多个查询结果合并到一个结果集中。 举个简单的例子,当我们需要对表数据进行多条件筛选数据,例如我们在一个会员表中需要选出包括用户名称为‘admin123’的5条数据,如何'admin123'用户不存在,就选用其他会员补齐。此时用union就能很好实现,如下语句 SELECT * FROM `member` WHERE username IN
union all 的效率问题
select Substation.Substation_ID Substation_ID, Substation.NAME SubstationNAME, PowerTransformer.PowerTransformer_ID Equipment_ID, PowerTransformer.NAME EquipmentNAME, Substationuriandid.classid Substationuriandidclassid, Substationuriandid.uri Substationuriandiduri, Equipmenturiandid.classid Equipmenturiandidclassid, Equipmenturiandid.uri Equipmenturiandiduri from Substation join PowerTransformer on exists (select 1 from CONTAINS_EQUI_MEMBEROF_EQUI where CONTAINS_EQUI_MEMBEROF_EQUI.MEMBEROF_EQUIPMENTCONTAINER_ID = Substation.Substation_ID and CONTAINS_EQUI_MEMBEROF_EQUI.CONTAINS_EQUIPMENTS_ID = PowerTransformer.PowerTransformer_ID) join uri_resourceid Substationuriandid on Substationuriandid.resource_id = Substation.Substation_ID join uri_resourceid Equipmenturiandid on Equipmenturiandid.resource_id = PowerTransformer.PowerTransformer_ID rnunion all rnselect Substation.Substation_ID Substation_ID, Substation.NAME SubstationNAME, Fuse.Fuse_ID Equipment_ID, Fuse.NAME EquipmentNAME, Substationuriandid.classid Substationuriandidclassid, Substationuriandid.uri Substationuriandiduri, Equipmenturiandid.classid Equipmenturiandidclassid, Equipmenturiandid.uri Equipmenturiandiduri from Substation join Fuse on exists (select 1 from CONTAINS_EQUI_MEMBEROF_EQUI where CONTAINS_EQUI_MEMBEROF_EQUI.MEMBEROF_EQUIPMENTCONTAINER_ID = Substation.Substation_ID and CONTAINS_EQUI_MEMBEROF_EQUI.CONTAINS_EQUIPMENTS_ID = Fuse.Fuse_ID) join uri_resourceid Substationuriandid on Substationuriandid.resource_id = Substation.Substation_ID join uri_resourceid Equipmenturiandid on Equipmenturiandid.resource_id = Fuse.Fuse_ID union all ......union all ...rn之后都是类似的查询语句.开始执行都很快,在1秒之内,到第13个union all的时候执行速度变成5秒,14个是20秒,再往后就等不到了,怎么解决啊?
mysql中union、union all的用法实例
1、建表数据:create table a(fname varchar(30),lname varchar(30),addr varchar(30)) insert into a values ("a_fname1","a_lname1","a_addr1"); insert into a values ("a_fname2","a_lname2","a_addr2"); insert into a
union 效率问题
select distinct * from (select [Name] from dbo.View_DRecordrn[color=#00CCFF]union all[/color] select [Name] from dbo.View_DRecord ) brnrn和rnrnselect [Name] from dbo.View_DRecordrn[color=#3366FF]union[/color] select [Name] from dbo.View_DRecordrnrn请问那个效率高,并说明下原因。
关于 union的效率
N张表联合查询rnrn把查询条件放在最后还是把条件放在每一个表尾,两种情况那个效率高,还是一样的。,rnrn1 : select * from (select * from table1 rnunion allrnselect * from table1) where id=123rnrn2: select * from table1 where id=123rnunion allrnselect * from table1 where id=123rn
Oracle union效率
一个系统中数据量很庞大,所以考虑同样的数据分很多同样表结构的表来存放(实际上一张表也一样)rn所以在需要的时候,要将不同的表union/union all拼接在一起rn问题:假如现在分10个表存放数据,每个表中有1万数和每个表有10万数据在用union all的时候效率会不会有很大的区别.rn 每个表中有1万数和每个表有10万数据在用union的时候效率会不会有很大的区别.rn如果效率是有很大的区别,请问有什么好的方式解决?谢谢!
union效率问题
有个SQL视图为rnselect a1,a2 from arnunionrnselect b1,b2 from b rnunionrnselect c1,c2 from c rnunionrnselect d1,d2 from drnrnrn记录才两万多都要了11秒,怎么能提高效率速度rnrnrnrn
相关热词 c#异步发送kafka c#窗体编号 c# 操作二进制文件 c# 反射 机制 c#线程 窗体失去响应 c#角度转弧度 c# 解析gps数据 c# vs设置 语法版本 c# json含回车 c#多线程demo