Re: [讨论] select大量资料

楼主: vity (逍遥杯-佛得)   2015-06-01 02:07:13
※ 引述《bernachom (Terry)》之铭言:
: 各位前辈好,请教一下
: 如果有300万笔资料需要select
: ,然后这300万笔资料,是多个table,join之后才select出来的
: ,那么,先把部份的select资料,放到data table,再继续join,
: 效能会比较好。
: 还是说,直接join就可以了呢?
: 我心理觉的dbms应该会做优化,所以直接join应该就可以了吧?
: 但是朋友认为先放到data table再继续join效能会比较好。
: 我晚点会来做个实验,手边没有安装数据库的电脑。
: 想先询问前辈们的经验和看法。
: 谢谢指导了
你的意思是, 把中间的join结果, 先实体化到数据库会不会比较快?
%第一次执行
我的看法是不会, 因为SQL Engine有IO最佳化
内存不够Join时, 它也是"暂时"放到cache或磁盘了, 它放得当然比你放得更有效率
%重复执行
如果下次还要再执行同样的join呢?
理论上那就会比较快, 因为他省略了几个join, 直接抓取中间的结果
不过如果中间暂存结果, 还存在cache里面的话, 其实看不出效率差距
要把cache洗掉才看得出差异
讲一下自己的看法, 有错请鞭小力XD

Links booklink

Contact Us: admin [ a t ] ucptt.com