58.4. РеализаÑиÑ
58.4.1. ÐоÑÑÑоение GiST Ñ Ð±ÑÑеÑизаÑией
ÐÑли попÑÑаÑÑÑÑ Ð¿Ð¾ÑÑÑоиÑÑ Ð±Ð¾Ð»ÑÑой Ð¸Ð½Ð´ÐµÐºÑ GiST, пÑоÑÑо добавлÑÑ Ð²Ñе коÑÑежи по оÑеÑеди, ÑкоÑее вÑего ÑÑо бÑÐ´ÐµÑ Ð¼ÐµÐ´Ð»ÐµÐ½Ð½Ð¾, поÑÐ¾Ð¼Ñ ÑÑо еÑли коÑÑежи индекÑов бÑдÑÑ ÑазбÑоÑÐ°Ð½Ñ Ð¿Ð¾ вÑÐµÐ¼Ñ Ð¸Ð½Ð´ÐµÐºÑÑ, а Ð¸Ð½Ð´ÐµÐºÑ Ð±ÑÐ´ÐµÑ Ð±Ð¾Ð»ÑÑим и не помеÑÑиÑÑÑ Ð² кеÑе, пÑи добавлении запиÑей поÑÑебÑеÑÑÑ Ð¿ÑоизвеÑÑи множеÑÑво опеÑаÑий пÑоизволÑного доÑÑÑпа. ÐаÑÐ¸Ð½Ð°Ñ Ñ Ð²ÐµÑÑии 9.2, PostgreSQL поддеÑÐ¶Ð¸Ð²Ð°ÐµÑ Ð±Ð¾Ð»ÐµÐµ ÑÑÑекÑивнÑй меÑод поÑÑÑÐ¾ÐµÐ½Ð¸Ñ Ð¸Ð½Ð´ÐµÐºÑов Ñ Ð¿Ñименением бÑÑеÑизаÑии, ÑÑо позволÑÐµÑ ÐºÐ°ÑдиналÑно ÑокÑаÑиÑÑ ÑиÑло опеÑаÑий пÑоизволÑного доÑÑÑпа, ÑÑебÑÑÑÐ¸Ñ ÑÑ Ð¿Ñи обÑабоÑке неÑпоÑÑдоÑеннÑÑ Ð½Ð°Ð±Ð¾Ñов даннÑÑ . ÐÐ»Ñ Ñ Ð¾ÑоÑо ÑпоÑÑдоÑеннÑÑ Ð½Ð°Ð±Ð¾Ñов вÑигÑÑÑ Ð¼Ð¾Ð¶ÐµÑ Ð±ÑÑÑ Ð¼Ð¸Ð½Ð¸Ð¼Ð°Ð»ÑнÑм или вообÑе оÑÑÑÑÑÑвоваÑÑ, Ñак как вÑего неÑколÑко ÑÑÑÐ°Ð½Ð¸Ñ Ð±ÑдÑÑ Ð¿ÑинимаÑÑ Ð½Ð¾Ð²Ñе коÑÑежи в один Ð¼Ð¾Ð¼ÐµÐ½Ñ Ð²Ñемени, и ÑÑи ÑÑÑаниÑÑ Ð±ÑдÑÑ ÑмеÑаÑÑÑÑ Ð² кеÑе, даже еÑли веÑÑ Ð¸Ð½Ð´ÐµÐºÑ Ð¾ÑÐµÐ½Ñ Ð±Ð¾Ð»ÑÑой.
Ðднако пÑи поÑÑÑоении индекÑа Ñ Ð±ÑÑеÑизаÑией пÑиÑ
одиÑÑÑ Ð³Ð¾Ñаздо ÑаÑе вÑзÑваÑÑ ÑÑнкÑÐ¸Ñ penalty, на ÑÑо ÑÑ
одÑÑ Ð´Ð¾Ð¿Ð¾Ð»Ð½Ð¸ÑелÑнÑе ÑеÑÑÑÑÑ Ð¿ÑоÑеÑÑоÑа. ÐÑоме Ñого, иÑполÑзÑемÑм Ð´Ð»Ñ ÑÑой опеÑаÑии бÑÑеÑам ÑÑебÑеÑÑÑ Ð²Ñеменное меÑÑо на диÑке, вплоÑÑ Ð´Ð¾ ÑазмеÑа ÑезÑлÑÑиÑÑÑÑего индекÑа. ÐÑÑеÑизаÑÐ¸Ñ Ñакже Ð¼Ð¾Ð¶ÐµÑ Ð¿Ð¾Ð²Ð»Ð¸ÑÑÑ Ð½Ð° каÑеÑÑво ÑезÑлÑÑиÑÑÑÑего индекÑа как в положиÑелÑнÑÑ, Ñак и в оÑÑиÑаÑелÑнÑÑ ÑÑоÑонÑ. ÐÑо влиÑние завиÑÐ¸Ñ Ð¾Ñ ÑазлиÑнÑÑ
ÑакÑоÑов, напÑÐ¸Ð¼ÐµÑ Ð¾Ñ ÑаÑпÑÐµÐ´ÐµÐ»ÐµÐ½Ð¸Ñ Ð¿Ð¾ÑÑÑпаÑÑиÑ
даннÑÑ
и Ð¾Ñ ÑеализаÑии клаÑÑа опеÑаÑоÑов.
Ðо ÑмолÑÐ°Ð½Ð¸Ñ Ð¿Ñи поÑÑÑоении индекÑа GiST вклÑÑаеÑÑÑ Ð±ÑÑеÑизаÑиÑ, когда ÑÐ°Ð·Ð¼ÐµÑ Ð¸Ð½Ð´ÐµÐºÑа доÑÑÐ¸Ð³Ð°ÐµÑ Ð·Ð½Ð°ÑÐµÐ½Ð¸Ñ effective_cache_size. ÐÑÐ¾Ñ Ñежим можно вÑÑÑнÑÑ Ð²ÐºÐ»ÑÑиÑÑ Ð¸Ð»Ð¸ оÑклÑÑиÑÑ Ñ Ð¿Ð¾Ð¼Ð¾ÑÑÑ Ð¿Ð°ÑамеÑÑа buffering ÐºÐ¾Ð¼Ð°Ð½Ð´Ñ CREATE INDEX. Ðоведение по ÑмолÑÐ°Ð½Ð¸Ñ Ð´Ð¾ÑÑаÑоÑно ÑÑÑекÑивно в болÑÑинÑÑве ÑлÑÑаев, но еÑли вÑ
однÑе даннÑе ÑпоÑÑдоÑенÑ, вÑклÑÑив бÑÑеÑизаÑиÑ, можно полÑÑиÑÑ Ð½ÐµÐºÐ¾ÑоÑое ÑÑкоÑение.