亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 數據庫 > SQL Server > 正文

探討select in 在postgresql的效率問題

2024-08-31 01:03:47
字體:
來源:轉載
供稿:網友
這篇文章主要介紹了探討select in 在postgresql的效率問題 的相關資料,需要的朋友可以參考下
 

在知乎上看到這樣一個問題:

MySQL 查詢 select * from table where id in (幾百或幾千個 id) 如何提高效率?修改

電商網站,一個商品屬性表,幾十萬條記錄,80M,索引只有主鍵id,做這樣的查詢如何提高效率?

select * from table where id in (幾百或幾千個id)

這些id沒啥規律,分散的。。。。

看了一下答案,感覺有好多不靠譜的,但是口說無憑,所以在我的電腦上寫了幾個查詢測試一下。我用的是Postgresql9.4,但感覺mysql應該也差不多,首先創建一個簡單表,只有簡單的3列,在這個問題的下面好多人提到了需要看表的大小,其實這個問題和表大小無關,只和index的大小有關,因為是index是建立在int上的,所以只和紀錄數目有關。

Table "public.t9"Column | Type | Modifiers--------+----------------+-----------c1 | integer |c2 | character(100) |c3 | character(200) |Indexes:"i1" UNIQUE, btree (c1)insert into t9 values(generate_series(1000,500000,1),repeat('a',90),repeat('b',180)); 

之后生成一些隨機數,Mac上用jot,Linux上用shuf

for ((i=0;i<100000;i++))dojot -r 1 1000 600000 >>rand.filedone 

然后根據rand.file 生成查詢語句:

select * from t9 where c1 in (494613,575087,363588,527650,251670,343456,426858,202886,254037,...1);

分別生成3個sql文件,in內變量的數目分別是100,1000和10000個,執行這3個sql文件,看看時間

try psql study -f test_100.sql -o /dev/nullLOG: duration: 2.879 mstry psql study -f test_1000.sql -o /dev/nullLOG: duration: 11.974 mstry psql study -f test_10000.sql -o /dev/nullLOG: duration: 355.689 ms 

可以看到只有在in內數據到了10,000個的時候數據時間會有比較大的變化,但也不過是在300多ms內完成。

那如果按照有些回答那樣,先建一個臨時表,然后用in subquery,并且希望這時候可以兩表join呢?為了簡單我直接用兩表join了

drop table t_tmp;create table t_tmp(id int);insert into t_tmp (id) values(494613),(575087),(363588),(345980),...(1);select t9.* from t9, t_tmpwhere t9.c1 = t_tmp.id; 

時間如何呢?

try psql study -f test_create_10000.sql -o /dev/nullLOG: duration: 2.078 msLOG: duration: 1.233 msLOG: duration: 224.112 msLOG: duration: 322.108 ms 

除去drop和create的時間,依然花費了500+的時間,這里的前提還是我用的ssd盤,所以寫LOG的時間會快很多。為什么會這么慢呢?用explain看一下,這時候數據量較大,直接走Merge join 了

那1000行數據的效率如何呢?

try psql study -f test_create_1000.sql -o exp.outLOG: duration: 2.476 msLOG: duration: 0.967 msLOG: duration: 2.391 msLOG: duration: 8.780 ms 

100行的數據如下:

try psql study -f test_create_100.sql -o /dev/nullLOG: duration: 2.020 msLOG: duration: 1.028 msLOG: duration: 1.074 msLOG: duration: 1.912 ms 

可以看到在100個值和1000個值的情況下create table的方式不會比直接在in里面寫所有的變量好多少,explain看的話是在用NLJ了。但在數據量更大(按照原問題,這里in的數量其實無法預知)的情況下效率只會更低,再加上額外的表維護成本和多余的SQL語句,DBA肯定不喜歡的,還是相信數據庫,放心大膽直接用in list來搞定這些問題吧。

以上內容是針對select in 在postgresql的效率問題,希望對大家有所幫助!



注:相關教程知識閱讀請移步到MSSQL教程頻道。
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
日韩精品免费电影| 亚洲天堂男人天堂女人天堂| 中文字幕日韩欧美在线| 91精品国产91| 国产丝袜高跟一区| 中文字幕亚洲欧美日韩2019| 国产成人在线精品| 亚洲free性xxxx护士白浆| 国产最新精品视频| www.xxxx精品| 日韩av片电影专区| 欧美成人在线影院| 亚洲电影在线看| 国产亚洲欧美日韩一区二区| 久久久精品2019中文字幕神马| 自拍偷拍亚洲区| 中文字幕亚洲综合久久筱田步美| 国产成人一区二区三区小说| 一区二区三区无码高清视频| 色999日韩欧美国产| 亚洲欧美一区二区三区情侣bbw| 国产精品免费小视频| 少妇激情综合网| 国产精品偷伦一区二区| 亚洲精品视频久久| 欧美极品美女视频网站在线观看免费| 亚洲色图第三页| 久久久久久亚洲| 国产精品一区二区三区免费视频| 另类美女黄大片| 国产精品www| 国产成人精品一区二区三区| 欧美成人免费大片| 日韩中文在线不卡| 成人免费视频xnxx.com| 日韩一区在线视频| 亚洲性av网站| 日韩在线欧美在线| 亚洲电影在线观看| 深夜福利91大全| 欧美成人精品一区二区| 亚洲第一色在线| 日韩电影中文 亚洲精品乱码| 久久久国产精品x99av| 在线观看视频亚洲| 久久久久久久久综合| 欧美成人中文字幕在线| 亚洲激情在线视频| 欧美在线中文字幕| 欧美体内谢she精2性欧美| www.xxxx欧美| 国产精品国语对白| 97久久精品国产| 在线播放国产精品| 最近的2019中文字幕免费一页| 欧美性受xxxx白人性爽| 亚洲国产成人av在线| 欧美在线视频网| 成人黄色生活片| 亚洲精品久久久一区二区三区| 国产精品7m视频| 精品久久久精品| 亚洲激情中文字幕| 国产精品91久久| 国产精品视频一区二区高潮| 2019中文字幕在线免费观看| 国产精品va在线| 中文字幕日韩av电影| 欧美大片在线看| 久久色免费在线视频| 久久天天躁狠狠躁夜夜躁| 狠狠色狠狠色综合日日小说| 欧美成人精品一区二区| 亚洲精品久久久一区二区三区| 欧美亚洲午夜视频在线观看| 欧美激情视频一区| 国产一区二区激情| 毛片精品免费在线观看| 亚洲人高潮女人毛茸茸| 国产精品影片在线观看| 国产精品欧美久久久| 色琪琪综合男人的天堂aⅴ视频| 秋霞成人午夜鲁丝一区二区三区| 亚洲理论片在线观看| 亚洲人成电影在线| 国产精品69精品一区二区三区| 欧美精品日韩www.p站| 久久99国产精品久久久久久久久| 中文字幕亚洲自拍| 国内揄拍国内精品| 亚洲精品综合精品自拍| 成人av色在线观看| 91精品在线影院| 亚洲成人性视频| 91理论片午午论夜理片久久| 日韩av电影在线免费播放| 一区二区亚洲欧洲国产日韩| 国产日韩欧美在线播放| 国产精品99久久久久久久久| 精品国产美女在线| 在线看福利67194| 亚洲电影在线观看| 中文亚洲视频在线| 久久777国产线看观看精品| 亚洲精品日产aⅴ| 国产精品久久久久久久久影视| 91精品综合久久久久久五月天| 中文字幕亚洲激情| 成人黄色免费网站在线观看| 亚洲精选在线观看| 日韩精品极品毛片系列视频| 91午夜理伦私人影院| 亚洲最大成人免费视频| 欧美在线亚洲一区| 欧美日本高清一区| 国产精品免费电影| 亚洲free性xxxx护士白浆| 91沈先生作品| 日韩欧美在线网址| 91老司机精品视频| 亚洲国产毛片完整版| 日韩国产高清污视频在线观看| 日韩av在线网| 色综合久久久888| 成人免费视频97| 69精品小视频| 国产亚洲精品一区二555| 日韩精品免费在线视频观看| 国产免费一区视频观看免费| 久久视频在线直播| 国产精品黄色影片导航在线观看| 在线观看欧美成人| 一色桃子一区二区| 伊人久久久久久久久久| 九九久久久久久久久激情| 日韩中文字幕在线免费观看| 国产91在线视频| 92看片淫黄大片欧美看国产片| 97久久超碰福利国产精品…| 高跟丝袜一区二区三区| 91免费在线视频| 亚洲国产欧美日韩精品| 欧美福利视频在线| 亚洲欧美日韩另类| 九九精品视频在线| 成人av在线网址| 亚洲国产精品999| 高清欧美性猛交xxxx黑人猛交| 日韩亚洲第一页| 成人在线视频网站| 日韩高清免费在线| 久久亚洲精品一区二区| 国产精品久久久久久久一区探花| 欧美亚洲伦理www| zzijzzij亚洲日本成熟少妇| 日韩亚洲欧美成人| 欧美一级高清免费播放| 亚洲第一国产精品| 亚洲美女免费精品视频在线观看| 97超视频免费观看| 欧美久久精品午夜青青大伊人| 国产亚洲视频中文字幕视频| 久久伊人91精品综合网站| 性欧美激情精品|