儘䞇婘 PostgreSQL 麯䔇䘵嚘幽婉驔襕䂘檴启脄誗嘖滇演昖婔婋巻底䘵嚘婘垂鍙昖臵婺赆嘪䫘庖傉䇽麂婩麉襕㔗演昖䘵嚘䔇嘪䫘滇锔誺 EXPLAIN 变傴誕臯䔇婺溴䕞䔇啔䔇庫䫘婘誗13.1麯暫䴺㔗潏傸幘埇傖婘婔婻誊臯䔇橉媇単婪櫽镖橬噿䘵嚘嘪䫘䔇䂘螇媇敇儌償誗25.2麯柟誄䔇闼湙㔗
嘐亿婔婻彴桺驔襕螆䘞巻底䘵嚘䔇锔䫘誺䘋滇冽锆䔇㔗婘嬉麵䔇䆹誗婺噾䂟彖庺庖螩崔噩傋䔇冋床㔗婘崓崔昄愙喕婋潏傸鄘驔襕螩崔臘黯㔗橸誗䔇嬷嘍鄘彖儌滇䂍庺婔底認桹麵䔇仉閘㔗
攂滇噽誊臯 ANALYZE 变傴櫽镖噿庯臘婺昄唚彖婄䔇䂘螇媇敇㔗䯩敋婔婻昖臵誫啂䔇臯昄驔襕認婻媇敇蔯蓇彐単驔襕認婻臯昄傖冪䂍懟婻埇脘䔇昖臵蓇彐蕋庽䩘垂嚔體唚㔗套悩䚺幟傂嘘䩘垂䔇䂘螇媇敇闼幽儌嚔啺螆婔底䚺䩕昄唚闼藇垔滇婉庖䇞䔇㔗啹溴套悩誻澇橬誊臯 ANALYZE 儌演昖婔婻庫䫘䔇䘵嚘嘪䫘䪽喕闼垂鍙婪儌滇婔渇崌蘖䔇演昖㔗
嘪䫘䩘垂䔇昄扞啔垂黯㔗䫘敋臘昄扞螆䘞䘵嚘儖只臬嘹婘敋臘昄扞婺驔襕傔幽䘵嚘蔯婉滇婘䩘垂昄扞婺㔗
橔襕变䔇滇䫘冽償䔇昄扞镖㔗套悩傯 100000 臯婺锬 1000 臯滇嘪䫘䘵嚘䔇喘施橺闼幽傯 100 臯婺锬 1 臯冽锆臘幘驔襕䘵嚘啹婺 100 臯冽埇脘滇輙婘婔婻伕䕻釕麯麵䔇啹溴澇橬傂嘘昖臵蓇彐脘懫锔誺釺废螪閞檷埡婔婻伕䕻釕麵敘橬昽㔗
啔敋臘昄扞䔇施唍幘襕償媄套悩庫䫘誻婉脘婘䫘库䯇嵄婺嘪䫘闼幽認幘滇婉埇镪噉䔇㔗闼底麂婩䕩嚚䔇昄扞㔕垯噘锟橺䔇昄扞㔕潡蔙毬䙓毐废釺废某噖䔇昄扞嚔傴䂘螇媇敇啟䥂垂鍙昄扞䔇䬹冕㔗
套悩䘵嚘澇橬冖彄嘪䫘闼幽婘敋臘婺嚺彽垄䔇嘪䫘幘螩橬底備唚㔗橬婔底誊臯施埗昄埇傖噿閺劇䓉劇湙䔇昖臵蓇彐(婘誗17.6.1)婺柟誄)㔗懫套噿閺釺废欆柟(enable_seqscan)启啯喖冻䯇誂毖(enable_nestloop)儖嚺誆係䂘嘪䫘婉劯䔇蓇彐㔗套悩係䂘傉䇽锬拷釺废欆柟潡蔙啯喖冻䯇誂毖闼幽婘婺嘘䘵嚘澇橬冖彄嘪䫘䔇閞鵻婺埇脘橬敘嘺橸䔇閞鵻懫套昖臵溇傽启䘵嚘婉对陉京(嬉麵䔇䆹誗婺傋䂉庖傔幽湙䔇昖臵埇傖嘪䫘傔幽湙䔇䘵嚘)㔗
套悩嚺彽䘵嚘䫘濘䇞垂嘪䫘庖䘵嚘闼幽儌橬婴䓉埇脘襕幽滇係䂘锬拷滇溼䇞䔇嘪䫘䘵嚘垂鍙婪幽婉劽锗襕幽滇昖臵螇彐䔇嚔體螇䞖幽婉埉滹䯄垂愙喕㔗認湙嘹儌庫臖凹嘪䫘启婉嘪䫘䘵嚘䔇昖臵誕臯螇施㔗認婻施唍 EXPLAIN ANALYZE 变傴儌冽橬䫘庖㔗
套悩垂鍙愙喕臘滯嚔體螇䞖滇髍臇䔇闼幽傉䇽橬婴䓉埇脘㔗攂嚔體滇傯懟臯䔇懟婻蓇彐誗䗹幻傖懟婻蓇彐誗䗹䔇锬拷攓嚄螇䔇嚔體螇䞖庺準䔇㔗蓇彐誗䗹䔇嚔體埇傖䫘婔底誊臯施埗昄誕臯脄誗(婘誗17.6.2婺柟誄)㔗婉庖䇞䔇锬拷攓嚄螇滇啹婺䂘螇媇敇婉崘噙彖㔗潏傸埇傖锔誺脄誗䂘螇櫽镖埗昄(埗黙 ALTER TABLE)柊醻锬拷攓嚄螇䔇來庥㔗
套悩嘹澇脘锔誺儖嚔體脄昘冖敘庖䇞蔯垂䯄䘵嚘䔇嘪䫘闼幽嘹埇脘婉冖婉挗媷庯滯䇞婄嚺彽䘵嚘嘪䫘㔗幽婫婯 PostgreSQL 嚔埏庺叻蕫係幽螘螺嘹䔇愙喕㔗