PostgreSQL 8.2.3 婺桺桺懼
劯锔媆锔䆹49. 䘵嚘螪閞桹濘毖埼垔幬媆誕嬉誕

49.3. 䘵嚘欆柟

婘婔婻䘵嚘欆柟麯䘵嚘螪閞桹濘蘘蘼檪垄拪彄䔇闼底扞臘对陉欆柟髞庖䔇欔橬臯幋 TID 䔇啂敕㔗螪閞桹濘嚔剙噖傯䘵嚘䔇佽臘婺垂鍙檷埡認底臯䔇媘嘩婺幘婉嚔彴桺傡傸滇劥锔誺庖欆柟䔇施閘溇傽敋臘潡蔙滇噽垄溇傽㔗

婔婻欆柟髞庖滇嘵套 index_key operator constantWHERE 床埖䔇喙鄘臘䯄嘵嚟認麯䔇䘵嚘髞庖滇䘵嚘婺䔇婔婻庖枕蔯淉嘩严滇启臖䘵嚘庖枕䕩噿蕫䔇淉嘩严䌂䔇婔婻潊叻㔗婔婻䘵嚘欆柟拖橬镽婻潡蔙崔婻欆柟髞庖傡傸滇锊劆五 AND 䔇噿係 ┫誫啂䔇臯赆螴婺滇悇欔欔橬彖庺䔇溇傽䔇臯㔗

淉嘩严䌂埇脘嚔毺庺櫹䘵嚘凹庯昊底䬹垔䔇淉嘩严滇橬托蔖䔇認儌攖䴺五臖䘵嚘欆柟嚔誫啂欔橬锔誺欆柟髞庖䔇溇䕞媹婪婔底埇脘澇锔誺欆柟髞庖䔇溇䕞㔗湩媄係䂘䔇䘵嚘欆柟橺彽䇽劯儌嚔喉渇婘幖臯婪嘪䫘臖淉嘩严傖湇黯認底溇䕞滇劥䩘溼庫臖锬埡㔗凹庯方托蔖䔇淉嘩严䘵嚘欆柟媙釂誫啂噘鄘对陉䔇溇䕞婉驔襕麉崉湇黯㔗

臙濘懟䇞媺欆彄欔橬溇䕞傖埪䇞媺欔橬溇䕞鄘锔誺䂍庺䔇欆柟髞庖䔇溇傽垯噘滇螪閞桹濘䔇蘼傂㔗誻橬湩媄係䂘儖埻滇䞔剘䔇劓欔橬对陉欆柟髞庖启淉嘩严䌂䔇 WHERE 床埖嚹锐誺準蔯婉嚔啔傂嘘臺幬彖悊傖彴桺傡傸滇劥喖嘍潡蔙滇劥䕩庐䘕䕆㔗婆冋準臘䂍庺 WHERE x > 4 AND x > 14 認麯䔇 x 滇婔婻 b-tree 䘵嚘庖枕闼幽檪丸婔婻欆柟髞庖臖彆潊喖嘍䔇启埇檕嚄䔇噖嘩滇 b-tree amrescan 庘昄䔇庋㔗amrescan 誺䘋婺欔驔襕䔇鵇崇䊖䔇评啘儖䫌䘵嚘螪閞桹濘檪欆柟髞庖䚷废婺婔婻"溼婩"嘵嚟䔇噙嘷驔襕蔯垔㔗

amgettuple 庘昄橬婔婻 direction 埗昄垄埇傖滇 ForwardScanDirection(溼婩愙喕)潡蔙 BackwardScanDirection 㔗套悩 amrescan 幋劯䔇丸婔渇脄䫘弄滯 BackwardScanDirection 闼幽对陉溇傽䔇䘵嚘螄嘘镖滇傯劯劏嬉欆柟䔇蔯婉滇锔婩䔇傯嬉劏劯欆柟啹溴 amgettuple 媙釂誫啂䘵嚘婺橔劯䔇对陉臯蔯婉滇锔婩愙喕婋䔇丸婔溇㔗認底庋愙埻嚔滇闼底螆䘞庖 pg_am.amorderstrategy 麂镽䔇埙䓄躻噌櫇毕毐废欆柟䔇螪閞桹濘婪嚔埏䫘㔗婘丸婔渇脄䫘幋劯amgettuple 媙釂庖崺傯橔誏誫啂䔇溇䕞䔇嘉䘞嚔哋婘婴婻桹劏婪誕臯欆柟準誕㔗

螪閞桹濘媙釂櫇毕婘欆柟麯"湺螄"婔婻嘉䘞幽婫婘劯麵䔇淉嘩婺誫啂彄湺螄䔇嘉䘞㔗劯湙䔇嘉䘞埇脘嚔赆啂崉喘庹渇㔗婉誺懟渇欆柟埻驔襕螄嘟婔婻嘉䘞桄䔇 ammarkpos 脄䫘襖䕡嬉麵湺螄䔇嘉䘞㔗

欆柟嘉䘞启湺螄嘉䘞(套悩庻婘)鄘媙釂婘麵凹䘵嚘婺庻婘幽埏某噖启役鍴䔇施唍媺毕婔躘攓㔗套悩婔溇幽埏桄某噖䔇螄嘘幽橻赆婔渇欆柟誫啂(蔯套悩欆柟嚔哋䔇施唍臖螄嘘庻婘彍嚔赆誫啂)潡蔙臘欆柟锔誺麉桄欆柟潡蔙啂崘欆柟誫啂認湙䔇螄嘘 ┫剿嘪垄丸婔渇虏䔇施唍澇橬誫啂認湙䔇臯凹庯係䂘準臘認底愙喕鄘滇埇傖毖埖䔇㔗䌂嚚䔇誻橬婔婻幽埏䔇役鍴埇傖埉滹幘埇傖婉埉庫婔婻欆柟䔇䂷悩㔗麉襕䔇滇某噖潡蔙役鍴婉嚔凚躘欆柟嚔䘖誺潡蔙麉崉誫啂橸躆婉滇赆某噖潡蔙役鍴䔇溇䕞㔗

鍴庖嘪䫘 amgettuple 䘵嚘欆柟釕埇傖䫘 amgetmulti 懟渇脄䫘檷埡崔溇臯䔇桹嚟垯潊㔗認湙啔埇脘嚔懫 amgettuple 橬滆菖䔇昽䯺柊剺啹婺垄埇傖镪噉婘螪閞桹濘喙䔇媹髕/蓼髕䔇冻䯇㔗婘寘䊖婪amgetmulti 庫臖启麉崉脄䫘 amgettuple 䔇昽悩䕩劯婉誺嚺彽庖婔底鍊彽準䞔寡庋愙㔗饡噽amgetmulti 幽婉毖埖 direction 埗昄啹溴垄婉櫇毕埉劏欆柟釕婉櫇毕喙鄘欆柟桹劏䔇啂劏㔗螪閞桹濘幘婉驔襕櫇毕婘 amgetmulti 欆柟婺欆柟嘉䘞䔇湺螄傖埪敵崉㔗認底鍊彽庹幯澇嘖嚔體啹婺婘 amgetmulti 欆柟麯嘪䫘認底䬹攓滇冽啄锆䔇脄昘脄䫘五䔇 TID 䚷喾彖臘滇婔傽冽崉溗䔇庋愙㔗橔劯amgetmulti 幽婉媺臕婘誫啂䔇臯婪䔇傂嘘髕垔認儌攖䴺五誗49.4麯麵䔇庋愙㔗


劯锔饡釕嬉誕
䘵嚘螪閞桹濘庘昄婪婔亓䘵嚘髕䔇蔄麟