11.11. СканиÑование ÑолÑко индекÑа
ÐÑе индекÑÑ Ð² Postgres Pro ÑвлÑÑÑÑÑ Ð²ÑоÑиÑнÑми, ÑÑо знаÑиÑ, ÑÑо каждÑй Ð¸Ð½Ð´ÐµÐºÑ Ñ
ÑаниÑÑÑ Ð²Ð½Ðµ облаÑÑи оÑновнÑÑ
даннÑÑ
ÑаблиÑÑ (коÑоÑÐ°Ñ Ð² ÑеÑминологии Postgres Pro назÑваеÑÑÑ ÐºÑÑей ÑаблиÑÑ). ÐÑо знаÑиÑ, ÑÑо пÑи обÑÑном ÑканиÑовании индекÑа Ð´Ð»Ñ Ð¸Ð·Ð²Ð»ÐµÑÐµÐ½Ð¸Ñ ÐºÐ°Ð¶Ð´Ð¾Ð¹ ÑÑÑоки необÑ
одимо пÑоÑиÑаÑÑ Ð´Ð°Ð½Ð½Ñе и из индекÑа, и из кÑÑи. Ðолее Ñого, Ñогда как ÑлеменÑÑ Ð¸Ð½Ð´ÐµÐºÑа, ÑооÑвеÑÑÑвÑÑÑие Ð·Ð°Ð´Ð°Ð½Ð½Ð¾Ð¼Ñ ÑÑÐ»Ð¾Ð²Ð¸Ñ WHERE, обÑÑно наÑ
одÑÑÑÑ Ð² индекÑе ÑÑдом, ÑÑÑоки ÑаблиÑÑ Ð¼Ð¾Ð³ÑÑ ÑаÑполагаÑÑÑÑ Ð² кÑÑе пÑоизволÑнÑм обÑазом. Таким обÑазом, обÑаÑение к кÑÑе пÑи поиÑке по индекÑÑ Ð²Ð»ÐµÑÑÑ Ð¼Ð½Ð¾Ð¶ÐµÑÑво опеÑаÑий пÑоизволÑного ÑÑÐµÐ½Ð¸Ñ ÐºÑÑи, коÑоÑÑе могÑÑ Ð¾Ð±Ð¾Ð¹ÑиÑÑ Ð½ÐµÐ´ÑÑево, оÑобенно на ÑÑадиÑионнÑÑ
вÑаÑаÑÑиÑ
ÑÑ Ð½Ð¾ÑиÑелÑÑ
. (Ðак опиÑано в Разделе 11.5, ÑканиÑование по биÑовой каÑÑе пÑÑаеÑÑÑ ÑнизиÑÑ ÑÑоимоÑÑÑ ÑÑиÑ
опеÑаÑий, ÑпоÑÑдоÑÐ¸Ð²Ð°Ñ Ð´Ð¾ÑÑÑп к кÑÑе, но не более Ñого.)
ЧÑÐ¾Ð±Ñ ÑеÑиÑÑ ÑÑÑ Ð¿ÑÐ¾Ð±Ð»ÐµÐ¼Ñ Ñ Ð¿ÑоизводиÑелÑноÑÑÑÑ, Postgres Pro поддеÑÐ¶Ð¸Ð²Ð°ÐµÑ ÑканиÑование ÑолÑко индекÑа, пÑи коÑоÑом ÑезÑлÑÑÐ°Ñ Ð·Ð°Ð¿ÑоÑа Ð¼Ð¾Ð¶ÐµÑ Ð±ÑÑÑ Ð¿Ð¾Ð»ÑÑен из Ñамого индекÑа, без обÑаÑÐµÐ½Ð¸Ñ Ðº кÑÑе. ÐÑÐ½Ð¾Ð²Ð½Ð°Ñ Ð¸Ð´ÐµÑ Ñакого ÑканиÑÐ¾Ð²Ð°Ð½Ð¸Ñ Ð² Ñом, ÑÑÐ¾Ð±Ñ Ð²ÑдаваÑÑ Ð·Ð½Ð°ÑÐµÐ½Ð¸Ñ Ð½ÐµÐ¿Ð¾ÑÑедÑÑвенно из ÑлеменÑа индекÑа, и не обÑаÑаÑÑÑÑ Ðº ÑооÑвеÑÑÑвÑÑÑей запиÑи в кÑÑе. ÐÐ»Ñ Ð¿ÑÐ¸Ð¼ÐµÐ½ÐµÐ½Ð¸Ñ ÑÑого меÑода еÑÑÑ Ð´Ð²Ð° ÑÑндаменÑалÑнÑÑ Ð¾Ð³ÑаниÑениÑ:
Тип индекÑа должен поддеÑживаÑÑ ÑканиÑование ÑолÑко индекÑа. ÐндекÑÑ-B-деÑевÑÑ Ð¿Ð¾Ð´Ð´ÐµÑживаÑÑ ÐµÐ³Ð¾ вÑегда. ÐндекÑÑ GiST и SP-GiST могÑÑ Ð¿Ð¾Ð´Ð´ÐµÑживаÑÑ ÐµÐ³Ð¾ Ñ Ð¾Ð´Ð½Ð¸Ð¼Ð¸ клаÑÑами опеÑаÑоÑов и не поддеÑживаÑÑ Ñ Ð´ÑÑгими. ÐÑÑгие индекÑÑ Ñакое ÑканиÑование не поддеÑживаÑÑ. СÑÑÑ Ð½Ð¸Ð¶ÐµÐ»ÐµÐ¶Ð°Ñего ÑÑÐµÐ±Ð¾Ð²Ð°Ð½Ð¸Ñ Ð² Ñом, ÑÑо Ð¸Ð½Ð´ÐµÐºÑ Ð´Ð¾Ð»Ð¶ÐµÐ½ ÑизиÑеÑки Ñ ÑаниÑÑ Ð¸Ð»Ð¸ каким-Ñо обÑазом воÑÑÑанавливаÑÑ Ð¸ÑÑ Ð¾Ð´Ð½Ð¾Ðµ знаÑение даннÑÑ Ð´Ð»Ñ ÐºÐ°Ð¶Ð´Ð¾Ð³Ð¾ ÑлеменÑа индекÑа. РкаÑеÑÑве конÑÑпÑимеÑа, индекÑÑ GIN неÑпоÑÐ¾Ð±Ð½Ñ Ð¿Ð¾Ð´Ð´ÐµÑживаÑÑ ÑканиÑование ÑолÑко индекÑа, Ñак как в ÑлеменÑÐ°Ñ Ð¸Ð½Ð´ÐµÐºÑа обÑÑно Ñ ÑаниÑÑÑ ÑолÑко ÑаÑÑÑ Ð¸ÑÑ Ð¾Ð´Ð½Ð¾Ð³Ð¾ знаÑÐµÐ½Ð¸Ñ Ð´Ð°Ð½Ð½ÑÑ .
ÐапÑÐ¾Ñ Ð´Ð¾Ð»Ð¶ÐµÐ½ обÑаÑаÑÑÑÑ ÑолÑко к ÑÑолбÑам, ÑÐ¾Ñ ÑанÑннÑм в индекÑе. ÐапÑимеÑ, еÑли в ÑаблиÑе поÑÑÑоен Ð¸Ð½Ð´ÐµÐºÑ Ð¿Ð¾ ÑÑолбÑам
xиy, и в ней еÑÑÑ Ñакже ÑÑолбеÑz, Ñакие запÑоÑÑ Ð±ÑдÑÑ Ð¸ÑполÑзоваÑÑ ÑканиÑование ÑолÑко индекÑа:SELECT x, y FROM tab WHERE x = 'key'; SELECT x FROM tab WHERE x = 'key' AND y < 42;
Ð ÑÑи запÑоÑÑ Ð½Ðµ бÑдÑÑ:
SELECT x, z FROM tab WHERE x = 'key'; SELECT x FROM tab WHERE x = 'key' AND z < 42;
(ÐндекÑÑ Ð¿Ð¾ вÑÑажениÑм и ÑаÑÑиÑнÑе индекÑÑ ÑÑложнÑÑÑ ÑÑо пÑавило, как опиÑано ниже.)
ÐÑли два ÑÑÐ¸Ñ ÑÑндаменÑалÑнÑÑ Ð¾Ð³ÑаниÑÐµÐ½Ð¸Ñ Ð²ÑполнÑÑÑÑÑ, Ñо вÑе даннÑе, ÑÑебÑемÑе Ð´Ð»Ñ Ð²ÑÐ¿Ð¾Ð»Ð½ÐµÐ½Ð¸Ñ Ð·Ð°Ð¿ÑоÑа, ÑодеÑжаÑÑÑ Ð² индекÑе, Ñак ÑÑо ÑканиÑование ÑолÑко по индекÑÑ ÑизиÑеÑки возможно. Ðо в Postgres Pro ÑÑÑеÑÑвÑÐµÑ Ð¸ еÑÑ Ð¾Ð´Ð½Ð¾ ÑÑебование Ð´Ð»Ñ ÑканиÑÐ¾Ð²Ð°Ð½Ð¸Ñ ÑаблиÑÑ: Ð½ÐµÐ¾Ð±Ñ Ð¾Ð´Ð¸Ð¼Ð¾ ÑбедиÑÑÑÑ, ÑÑо вÑе возвÑаÑаемÑе ÑÑÑоки «виднÑ» в Ñнимке MVCC запÑоÑа, как опиÑано в Ðлаве 13. ÐнÑоÑмаÑÐ¸Ñ Ð¾ видимоÑÑи Ñ ÑаниÑÑÑ Ð½Ðµ в ÑлеменÑÐ°Ñ Ð¸Ð½Ð´ÐµÐºÑа, а ÑолÑко в кÑÑе; поÑÑÐ¾Ð¼Ñ Ð½Ð° пеÑвÑй взглÑд Ð¼Ð¾Ð¶ÐµÑ Ð¿Ð¾ÐºÐ°Ð·Ð°ÑÑÑÑ, ÑÑо Ð´Ð»Ñ Ð¿Ð¾Ð»ÑÑÐµÐ½Ð¸Ñ Ð´Ð°Ð½Ð½ÑÑ ÐºÐ°Ð¶Ð´Ð¾Ð¹ ÑÑÑоки вÑÑ Ñавно Ð½ÐµÐ¾Ð±Ñ Ð¾Ð´Ð¸Ð¼Ð¾ обÑаÑаÑÑÑÑ Ðº кÑÑе. Ð ÑÑо в Ñамом деле Ñак, еÑли в ÑаблиÑе недавно пÑоизоÑли изменениÑ. Ðднако Ð´Ð»Ñ Ñедко менÑÑÑÐ¸Ñ ÑÑ Ð´Ð°Ð½Ð½ÑÑ ÐµÑÑÑ Ð²Ð¾Ð·Ð¼Ð¾Ð¶Ð½Ð¾ÑÑÑ Ð¾Ð±Ð¾Ð¹Ñи ÑÑÑ Ð¿ÑоблемÑ. Postgres Pro оÑÑÐ»ÐµÐ¶Ð¸Ð²Ð°ÐµÑ Ð´Ð»Ñ ÐºÐ°Ð¶Ð´Ð¾Ð¹ ÑÑÑаниÑÑ Ð² кÑÑе ÑаблиÑÑ, ÑвлÑÑÑÑÑ Ð»Ð¸ вÑе ÑÑÑоки в ÑÑой ÑÑÑаниÑе доÑÑаÑоÑно ÑÑаÑÑми, ÑÑÐ¾Ð±Ñ Ð¸Ñ Ð²Ð¸Ð´ÐµÐ»Ð¸ вÑе ÑекÑÑие и бÑдÑÑие ÑÑанзакÑии. ÐÑо оÑÑажаеÑÑÑ Ð² биÑÐ°Ñ Ð² каÑÑе видимоÑÑи ÑаблиÑÑ. ÐÑоÑедÑÑа ÑканиÑÐ¾Ð²Ð°Ð½Ð¸Ñ ÑолÑко индекÑа, Ð½Ð°Ð¹Ð´Ñ Ð¿Ð¾ÑенÑиалÑно Ð¿Ð¾Ð´Ñ Ð¾Ð´ÑÑÑÑ Ð·Ð°Ð¿Ð¸ÑÑ Ð² индекÑе, пÑовеÑÑÐµÑ Ð±Ð¸Ñ Ð² каÑÑе видимоÑÑи Ð´Ð»Ñ ÑооÑвеÑÑÑвÑÑÑей ÑÑÑаниÑÑ Ð² кÑÑе. ÐÑли он ÑÑÑановлен, знаÑÐ¸Ñ ÑÑа ÑÑÑока видна, и даннÑе могÑÑ Ð±ÑÑÑ Ð²Ð¾Ð·Ð²ÑаÑÐµÐ½Ñ ÑÑазÑ. РпÑоÑивном ÑлÑÑае пÑидÑÑÑÑ Ð¿Ð¾ÑеÑиÑÑ Ð·Ð°Ð¿Ð¸ÑÑ ÑÑÑоки в кÑÑе и пÑовеÑиÑÑ, видима ли она, Ñак ÑÑо никакого вÑигÑÑÑа по ÑÑÐ°Ð²Ð½ÐµÐ½Ð¸Ñ Ñ Ð¾Ð±ÑÑнÑм ÑканиÑованием индекÑа не бÑдеÑ. Рдаже в благопÑиÑÑном ÑлÑÑае обÑаÑение к кÑÑи не иÑклÑÑаеÑÑÑ ÑовÑем, а заменÑеÑÑÑ Ð¾Ð±ÑаÑением к каÑÑе видимоÑÑи; но Ñак как каÑÑа видимоÑÑи на ÑеÑÑÑе поÑÑдка менÑÑе ÑооÑвеÑÑÑвÑÑÑей ей облаÑÑи кÑÑи, Ð´Ð»Ñ ÑабоÑÑ Ñ Ð½ÐµÐ¹ ÑÑебÑеÑÑÑ Ð¼Ð½Ð¾Ð³Ð¾ менÑÑе опеÑаÑий ÑизиÑеÑкого ввода/вÑвода. РболÑÑинÑÑве ÑиÑÑаÑий каÑÑа видимоÑÑи пÑоÑÑо вÑÑ Ð²ÑÐµÐ¼Ñ Ð½Ð°Ñ Ð¾Ð´Ð¸ÑÑÑ Ð² памÑÑи.
Таким обÑазом, Ñогда как ÑканиÑование ÑолÑко по индекÑÑ Ð²Ð¾Ð·Ð¼Ð¾Ð¶Ð½Ð¾ лиÑÑ Ð¿Ñи вÑполнении двÑÑ ÑÑндаменÑалÑнÑÑ ÑÑебований, оно даÑÑ Ð²ÑигÑÑÑ, ÑолÑко еÑли Ð´Ð»Ñ Ð·Ð½Ð°ÑиÑелÑной ÑаÑÑи ÑÑÑÐ°Ð½Ð¸Ñ Ð² кÑÑе ÑаблиÑÑ ÑÑÑÐ°Ð½Ð¾Ð²Ð»ÐµÐ½Ñ Ð±Ð¸ÑÑ Ð¿Ð¾Ð»Ð½Ð¾Ð¹ видимоÑÑи. Ðо ÑаблиÑÑ, в коÑоÑÑÑ Ð¼ÐµÐ½ÑеÑÑÑ Ð»Ð¸ÑÑ Ð½ÐµÐ±Ð¾Ð»ÑÑÐ°Ñ ÑаÑÑÑ ÑÑÑок, вÑÑÑеÑаÑÑÑÑ Ð´Ð¾ÑÑаÑоÑно ÑаÑÑо, ÑÑÐ¾Ð±Ñ ÑÑÐ¾Ñ Ñип ÑканиÑÐ¾Ð²Ð°Ð½Ð¸Ñ Ð±Ñл веÑÑма полезен на пÑакÑике.
ЧÑÐ¾Ð±Ñ ÑÑÑекÑивно пÑименÑÑÑ Ð²Ð¾Ð·Ð¼Ð¾Ð¶Ð½Ð¾ÑÑÑ ÑканиÑÐ¾Ð²Ð°Ð½Ð¸Ñ ÑолÑко индекÑа, можно ÑоздаÑÑ Ð¸Ð½Ð´ÐµÐºÑÑ, в коÑоÑÑÑ
ÑолÑко пеÑвÑе ÑÑолбÑÑ Ð±ÑдÑÑ ÑооÑвеÑÑÑвоваÑÑ Ð¿ÑедложениÑм WHERE, а оÑÑалÑнÑе ÑÑолбÑÑ Ð±ÑдÑÑ ÑодеÑжаÑÑ Ð¿Ð¾Ð»ÐµÐ·Ð½Ñе даннÑе, возвÑаÑаемÑе запÑоÑом. ÐапÑимеÑ, еÑли ÑаÑÑо вÑполнÑеÑÑÑ Ð·Ð°Ð¿ÑÐ¾Ñ Ð²Ð¸Ð´Ð°:
SELECT y FROM tab WHERE x = 'key';
пÑи ÑÑадиÑионном подÑ
оде к ÑÑкоÑÐµÐ½Ð¸Ñ ÑакиÑ
запÑоÑов можно бÑло Ð±Ñ ÑоздаÑÑ Ð¸Ð½Ð´ÐµÐºÑ ÑолÑко по x. Ðднако Ð¸Ð½Ð´ÐµÐºÑ Ð¿Ð¾ (x, y) дал Ð±Ñ Ð²Ð¾Ð·Ð¼Ð¾Ð¶Ð½Ð¾ÑÑÑ Ð²ÑÐ¿Ð¾Ð»Ð½ÐµÐ½Ð¸Ñ ÑÑого запÑоÑа Ñо ÑканиÑованием ÑолÑко индекÑа. Ðак говоÑилоÑÑ Ñанее, Ñакой Ð¸Ð½Ð´ÐµÐºÑ Ð±Ñл Ð±Ñ Ð¾Ð±ÑÑмнее и доÑоже в обÑлÑживании, Ñем Ð¸Ð½Ð´ÐµÐºÑ ÑолÑко по x, Ñак ÑÑо ÑÑÐ¾Ñ Ð²Ð°ÑÐ¸Ð°Ð½Ñ Ð¿ÑедпоÑÑиÑелен, ÑолÑко Ð´Ð»Ñ ÑÐ°Ð±Ð»Ð¸Ñ Ð² оÑновном ÑÑаÑиÑеÑкиÑ
. ÐамеÑÑÑе, ÑÑо в обÑÑвлении индекÑа важно ÑказаÑÑ ÑÑолбÑÑ (x, y), а не (y, x), Ñак как Ð´Ð»Ñ Ð±Ð¾Ð»ÑÑинÑÑва Ñипов индекÑов (а именно, B-деÑевÑев) поиÑк, пÑи коÑоÑом не огÑаниÑиваÑÑÑÑ Ð·Ð½Ð°ÑÐµÐ½Ð¸Ñ Ð²ÐµÐ´ÑÑиÑ
ÑÑолбÑов индекÑа, не бÑÐ´ÐµÑ ÑÑÑекÑивнÑм.
РпÑинÑипе ÑканиÑование ÑолÑко индекÑа Ð¼Ð¾Ð¶ÐµÑ Ð¿ÑименÑÑÑÑÑ Ð¸ Ñ Ð¸Ð½Ð´ÐµÐºÑами по вÑÑажениÑм. ÐапÑимеÑ, пÑи налиÑии индекÑа по f(x), где x â ÑÑÐ¾Ð»Ð±ÐµÑ ÑаблиÑÑ, должно бÑÑÑ Ð²Ð¾Ð·Ð¼Ð¾Ð¶Ð½Ð¾ вÑполниÑÑ
SELECT f(x) FROM tab WHERE f(x) < 1;
как ÑканиÑование ÑолÑко индекÑа; и ÑÑо оÑÐµÐ½Ñ Ð·Ð°Ð¼Ð°Ð½Ñиво, еÑли f() â ÑÐ»Ð¾Ð¶Ð½Ð°Ñ Ð´Ð»Ñ Ð²ÑÑиÑÐ»ÐµÐ½Ð¸Ñ ÑÑнкÑиÑ. Ðднако планиÑовÑик Postgres Pro в наÑÑоÑÑее вÑÐµÐ¼Ñ Ð¼Ð¾Ð¶ÐµÑ Ð²ÐµÑÑи ÑÐµÐ±Ñ Ð½Ðµ оÑÐµÐ½Ñ ÑазÑмно. Ðн ÑÑиÑаеÑ, ÑÑо запÑÐ¾Ñ Ð¼Ð¾Ð¶ÐµÑ Ð²ÑполнÑÑÑÑÑ Ñо ÑканиÑованием ÑолÑко индекÑа, лиÑÑ ÐºÐ¾Ð³Ð´Ð° из индекÑа могÑÑ Ð±ÑÑÑ Ð¿Ð¾Ð»ÑÑÐµÐ½Ñ Ð²Ñе ÑÑолбÑÑ, ÑÑебÑÑÑиеÑÑ Ð´Ð»Ñ Ð·Ð°Ð¿ÑоÑа. Ð ÑÑом пÑимеÑе x ÑигÑÑиÑÑÐµÑ ÑолÑко в конÑекÑÑе f(x), но планиÑовÑик не замеÑÐ°ÐµÑ ÑÑого и ÑеÑаеÑ, ÑÑо ÑканиÑование ÑолÑко по индекÑÑ Ð½ÐµÐ²Ð¾Ð·Ð¼Ð¾Ð¶Ð½Ð¾. ÐÑли ÑканиÑование ÑолÑко по индекÑÑ Ð·Ð°ÑлÑÐ¶Ð¸Ð²Ð°ÐµÑ Ñого, ÑÑÑ Ð¿ÑÐ¾Ð±Ð»ÐµÐ¼Ñ Ð¼Ð¾Ð¶Ð½Ð¾ обойÑи, обÑÑвив Ð¸Ð½Ð´ÐµÐºÑ Ð¿Ð¾ (f(x), x), где вÑоÑой ÑÑÐ¾Ð»Ð±ÐµÑ Ð¼Ð¾Ð¶ÐµÑ Ð½Ðµ иÑполÑзоваÑÑÑÑ Ð½Ð° пÑакÑике, но нÑжен Ð´Ð»Ñ Ñого, ÑÑÐ¾Ð±Ñ ÑбедиÑÑ Ð¿Ð»Ð°Ð½Ð¸ÑовÑик, ÑÑо ÑканиÑование ÑолÑко по индекÑÑ Ð²Ð¾Ð·Ð¼Ð¾Ð¶Ð½Ð¾. ÐÑли ÑÑо делаеÑÑÑ Ñади пÑедоÑвÑаÑÐµÐ½Ð¸Ñ Ð¼Ð½Ð¾Ð³Ð¾ÐºÑаÑнÑÑ
вÑÑиÑлений f(x), ÑледÑÐµÑ Ñакже ÑÑеÑÑÑ, ÑÑо планиÑовÑик не обÑзаÑелÑно ÑвÑÐ¶ÐµÑ Ñ Ð¸ÑполÑзованием индекÑа ÑÐ¿Ð¾Ð¼Ð¸Ð½Ð°Ð½Ð¸Ñ f(x), ÑигÑÑиÑÑÑÑие вне индекÑиÑÑемÑÑ
пÑедложений WHERE, Ñо ÑÑолбÑом индекÑа. ÐбÑÑно он ÑÑо Ð´ÐµÐ»Ð°ÐµÑ Ð¿ÑавилÑно в пÑоÑÑÑÑ
запÑоÑаÑ
, вÑоде показанного вÑÑе, но не в запÑоÑаÑ
Ñ ÑоединениÑми. ÐÑи недоÑÑаÑки могÑÑ Ð±ÑÑÑ ÑÑÑÑÐ°Ð½ÐµÐ½Ñ Ð² бÑдÑÑиÑ
веÑÑиÑÑ
Postgres Pro.
С иÑполÑзованием ÑаÑÑиÑнÑÑ Ð¸Ð½Ð´ÐµÐºÑов пÑи ÑканиÑовании ÑолÑко по индекÑÑ Ñоже ÑвÑÐ·Ð°Ð½Ñ Ð¸Ð½ÑеÑеÑнÑе оÑобенноÑÑи. ÐÑедположим, ÑÑо Ñ Ð½Ð°Ñ ÐµÑÑÑ ÑаÑÑиÑнÑй индекÑ, показаннÑй в ÐÑимеÑе 11.3:
CREATE UNIQUE INDEX tests_success_constraint ON tests (subject, target)
WHERE success;РпÑинÑипе Ñ Ð½Ð¸Ð¼ Ð¼Ñ Ð¼Ð¾Ð¶ÐµÐ¼ пÑоизвеÑÑи ÑканиÑование ÑолÑко по индекÑÑ Ð¿Ñи вÑполнении запÑоÑа
SELECT target FROM tests WHERE subject = 'some-subject' AND success;
Ðо еÑÑÑ Ð¾Ð´Ð½Ð° пÑоблема: пÑедложение WHERE обÑаÑаеÑÑÑ Ðº ÑÑолбÑÑ success, коÑоÑÑй оÑÑÑÑÑÑвÑÐµÑ Ð² ÑезÑлÑÑиÑÑÑÑиÑ
ÑÑолбÑаÑ
индекÑа. Тем не менее ÑканиÑование ÑолÑко индекÑа возможно, Ñак как Ð¿Ð»Ð°Ð½Ñ Ð½Ðµ нÑжно пеÑепÑовеÑÑÑÑ ÑÑÑ ÑаÑÑÑ Ð¿ÑÐµÐ´Ð»Ð¾Ð¶ÐµÐ½Ð¸Ñ WHERE во вÑÐµÐ¼Ñ Ð²ÑполнениÑ: Ñ Ð²ÑеÑ
запиÑей, найденнÑÑ
в индекÑе, знаÑение success = true, Ñак ÑÑо в плане его не нÑжно пÑовеÑÑÑÑ Ñвно. Postgres Pro веÑÑий 9.6 и новее ÑаÑÐ¿Ð¾Ð·Ð½Ð°ÐµÑ ÑакÑÑ ÑиÑÑаÑÐ¸Ñ Ð¸ ÑÐ¼Ð¾Ð¶ÐµÑ Ð¿ÑоизвеÑÑи ÑканиÑование ÑолÑко по индекÑÑ, но ÑÑаÑÑе веÑÑии неÑпоÑÐ¾Ð±Ð½Ñ Ð½Ð° ÑÑо.