注册 登录  
 加关注
查看详情
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

obsolete

wanna go

 
 
 

日志

 
 

数据库临时表问题  

2014-11-06 14:35:56|  分类: 默认分类 |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |
问:
我查询材料表里的数据140万条需要3分多钟,
而将这140万材料插入一个临时表却仅需要8秒,请问为什么插入数据要比查询数据块,临时表的原理是什么?
谢谢!
而且电脑配置越好 效果越明显,我在本地查询数据直接查用的时间是插入临时表再查用的时间的2倍,而在服务器上这样对比是20多倍。是不是内存,cpu越高,临时表的效果越明显?
答:
这个差距的产生并不是配置的问题,配置好的话,两种查询的速度都会提升。
造成差距的原因:
1、原表和临时表的共享操作不一样。一般来说,临时表只有你一个线程在用,没有任何用户、线程和你竞争使用该临时表。而原表总是有不同的用户、不同的线程在共享使用,对查询响最大的是有大量的数据在写入或者频繁的写入,那么查询的时候就会涉及到很多事务机制(并发、锁)的问题,产生了不同类型的等待事件,所以慢。相比较临时表就没有并发,只要服务器配置好,就非常快。

2、原表和临时表的索引差异。索引对查询的影响也是很大的,不过我相信你这里不会是这个原因。

对于你说的查询操作比插入操作慢,是查询和插入的机制问题,涉及数据库引擎的工作原理,不好深入。简单的说,虽然插入语句好像也包含了查询,可是其并不将查询结果返回,只是在数据库中直接打包做了复制而已,所以查询结果集越大,耗时差异越明显

  评论这张
 
阅读(301)| 评论(0)
推荐 转载

历史上的今天

在LOFTER的更多文章

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2018