62.4. РеализаÑиÑ
62.4.1. СпоÑÐ¾Ð±Ñ Ð¿Ð¾ÑÑÑÐ¾ÐµÐ½Ð¸Ñ Ð¸Ð½Ð´ÐµÐºÑов GiST
СамÑй пÑоÑÑой ÑпоÑоб поÑÑÑоиÑÑ Ð¸Ð½Ð´ÐµÐºÑ GiST â пÑоÑÑо добавлÑÑÑ Ð²Ñе запиÑи Ð¾Ð´Ð½Ñ Ð·Ð° дÑÑгой. Ðо Ð´Ð»Ñ Ð±Ð¾Ð»ÑÑÐ¸Ñ Ð¸Ð½Ð´ÐµÐºÑов ÑÑо Ð¼Ð¾Ð¶ÐµÑ Ð·Ð°Ð½ÑÑÑ Ð¼Ð½Ð¾Ð³Ð¾ вÑемени, поÑколÑÐºÑ ÐµÑли индекÑнÑе коÑÑежи ÑазбÑоÑÐ°Ð½Ñ Ð¿Ð¾ вÑÐµÐ¼Ñ Ð¸Ð½Ð´ÐµÐºÑÑ Ð¸ он наÑÑолÑко велик, ÑÑо не помеÑаеÑÑÑ Ð² кеÑе, поÑÑебÑеÑÑÑ Ð²ÑполниÑÑ Ð¼Ð½Ð¾Ð¶ÐµÑÑво неÑпоÑÑдоÑеннÑÑ Ð¾Ð¿ÐµÑаÑий ввода-вÑвода. PostgreSQL поддеÑÐ¶Ð¸Ð²Ð°ÐµÑ Ð´Ð²Ð° алÑÑеÑнаÑивнÑÑ Ð¼ÐµÑода наÑалÑного поÑÑÑÐ¾ÐµÐ½Ð¸Ñ Ð¸Ð½Ð´ÐµÐºÑа GiST: Ñ ÑоÑÑиÑовкой и Ñ Ð±ÑÑеÑизаÑией.
ÐоÑÑÑоение индекÑа Ñ ÑоÑÑиÑовкой возможно, ÑолÑко еÑли вÑе клаÑÑÑ Ð¾Ð¿ÐµÑаÑоÑов, иÑполÑзÑемÑе индекÑом, пÑедоÑÑавлÑÑÑ ÑÑнкÑÐ¸Ñ sortsupport, как опиÑано в Раздел 62.3. Ð Ñаком ÑлÑÑае даннÑй меÑод иÑполÑзÑеÑÑÑ Ð¿Ð¾ ÑмолÑаниÑ, как опÑималÑнÑй.
ÐÑи поÑÑÑоении индекÑа Ñ Ð±ÑÑеÑизаÑией коÑÑежи не вÑÑавлÑÑÑÑÑ Ð² Ð¸Ð½Ð´ÐµÐºÑ Ð½ÐµÐ¼ÐµÐ´Ð»ÐµÐ½Ð½Ð¾. ÐÑо позволÑÐµÑ ÐºÐ°ÑдиналÑно ÑокÑаÑиÑÑ ÑиÑло опеÑаÑий пÑоизволÑного доÑÑÑпа, ÑÑебÑÑÑÐ¸Ñ ÑÑ Ð¿Ñи обÑабоÑке неÑпоÑÑдоÑеннÑÑ Ð½Ð°Ð±Ð¾Ñов даннÑÑ . ÐÐ»Ñ Ñ Ð¾ÑоÑо ÑпоÑÑдоÑеннÑÑ Ð½Ð°Ð±Ð¾Ñов вÑигÑÑÑ Ð¼Ð¾Ð¶ÐµÑ Ð±ÑÑÑ Ð¼Ð¸Ð½Ð¸Ð¼Ð°Ð»ÑнÑм или вообÑе оÑÑÑÑÑÑвоваÑÑ, Ñак как вÑего неÑколÑко ÑÑÑÐ°Ð½Ð¸Ñ Ð±ÑдÑÑ Ð¿ÑинимаÑÑ Ð½Ð¾Ð²Ñе коÑÑежи в один Ð¼Ð¾Ð¼ÐµÐ½Ñ Ð²Ñемени и ÑÑи ÑÑÑаниÑÑ Ð±ÑдÑÑ ÑмеÑаÑÑÑÑ Ð² кеÑе, даже еÑли веÑÑ Ð¸Ð½Ð´ÐµÐºÑ Ð¾ÑÐµÐ½Ñ Ð±Ð¾Ð»ÑÑой.
ÐÑи поÑÑÑоении индекÑа Ñ Ð±ÑÑеÑизаÑией пÑиÑ
одиÑÑÑ Ð³Ð¾Ñаздо ÑаÑе вÑзÑваÑÑ ÑÑнкÑÐ¸Ñ penalty по ÑÑÐ°Ð²Ð½ÐµÐ½Ð¸Ñ Ñ Ð¾Ð±ÑÑнÑм поÑÑÑоением, на ÑÑо ÑÑ
одÑÑ Ð´Ð¾Ð¿Ð¾Ð»Ð½Ð¸ÑелÑнÑе ÑеÑÑÑÑÑ Ð¿ÑоÑеÑÑоÑа. ÐÑоме Ñого, бÑÑеÑам ÑÑебÑеÑÑÑ Ð²Ñеменное меÑÑо на диÑке, вплоÑÑ Ð´Ð¾ ÑазмеÑа ÑезÑлÑÑиÑÑÑÑего индекÑа. ÐÑÑеÑизаÑÐ¸Ñ Ñакже Ð¼Ð¾Ð¶ÐµÑ Ð¿Ð¾Ð²Ð»Ð¸ÑÑÑ Ð½Ð° каÑеÑÑво ÑезÑлÑÑиÑÑÑÑего индекÑа, как в положиÑелÑнÑÑ, Ñак и в оÑÑиÑаÑелÑнÑÑ ÑÑоÑонÑ. ÐÑо влиÑние завиÑÐ¸Ñ Ð¾Ñ ÑазлиÑнÑÑ
ÑакÑоÑов, напÑимеÑ, Ð¾Ñ ÑаÑпÑÐµÐ´ÐµÐ»ÐµÐ½Ð¸Ñ Ð¿Ð¾ÑÑÑпаÑÑиÑ
даннÑÑ
и Ð¾Ñ ÑеализаÑии клаÑÑа опеÑаÑоÑов.
ÐÑли ÑоÑÑиÑовка невозможна, по ÑмолÑÐ°Ð½Ð¸Ñ Ð¿Ñи поÑÑÑоении индекÑа GiST вклÑÑаеÑÑÑ Ð±ÑÑеÑизаÑиÑ, когда ÑÐ°Ð·Ð¼ÐµÑ Ð¸Ð½Ð´ÐµÐºÑа доÑÑÐ¸Ð³Ð°ÐµÑ Ð·Ð½Ð°ÑÐµÐ½Ð¸Ñ effective_cache_size. ÐÑÑеÑизаÑÐ¸Ñ Ð¼Ð¾Ð¶Ð½Ð¾ пÑинÑдиÑелÑно вклÑÑиÑÑ Ð¸Ð»Ð¸ оÑклÑÑиÑÑ Ð²ÑÑÑнÑÑ Ñ Ð¿Ð¾Ð¼Ð¾ÑÑÑ Ð¿Ð°ÑамеÑÑа buffering ÐºÐ¾Ð¼Ð°Ð½Ð´Ñ CREATE INDEX. Ðоведение по ÑмолÑÐ°Ð½Ð¸Ñ Ð´Ð¾ÑÑаÑоÑно ÑÑÑекÑивно в болÑÑинÑÑве ÑлÑÑаев, но еÑли вÑ
однÑе даннÑе ÑпоÑÑдоÑенÑ, вÑклÑÑив бÑÑеÑизаÑиÑ, можно полÑÑиÑÑ Ð½ÐµÐºÐ¾ÑоÑое ÑÑкоÑение.