{"id":22611,"date":"2026-04-17T12:21:44","date_gmt":"2026-04-17T12:21:44","guid":{"rendered":"https:\/\/umang.pk\/2026\/04\/17\/%da%88%db%8c%d9%b9%d8%a7-%d8%a8%db%8c%d8%b3-%da%a9%db%92-%d8%a7%d8%b4%d8%a7%d8%b1%db%8c%db%81-%d8%ac%d8%a7%d8%aa-%da%a9%db%8c%d8%b3%db%92-%da%a9%d8%a7%d9%85-%da%a9%d8%b1%d8%aa%db%92-%db%81%db%8c%da%ba\/"},"modified":"2026-04-17T12:21:44","modified_gmt":"2026-04-17T12:21:44","slug":"%da%88%db%8c%d9%b9%d8%a7-%d8%a8%db%8c%d8%b3-%da%a9%db%92-%d8%a7%d8%b4%d8%a7%d8%b1%db%8c%db%81-%d8%ac%d8%a7%d8%aa-%da%a9%db%8c%d8%b3%db%92-%da%a9%d8%a7%d9%85-%da%a9%d8%b1%d8%aa%db%92-%db%81%db%8c%da%ba","status":"publish","type":"post","link":"https:\/\/umang.pk\/ur\/2026\/04\/17\/%da%88%db%8c%d9%b9%d8%a7-%d8%a8%db%8c%d8%b3-%da%a9%db%92-%d8%a7%d8%b4%d8%a7%d8%b1%db%8c%db%81-%d8%ac%d8%a7%d8%aa-%da%a9%db%8c%d8%b3%db%92-%da%a9%d8%a7%d9%85-%da%a9%d8%b1%d8%aa%db%92-%db%81%db%8c%da%ba\/","title":{"rendered":"\u0688\u06cc\u0679\u0627 \u0628\u06cc\u0633 \u06a9\u06d2 \u0627\u0634\u0627\u0631\u06cc\u06c1 \u062c\u0627\u062a \u06a9\u06cc\u0633\u06d2 \u06a9\u0627\u0645 \u06a9\u0631\u062a\u06d2 \u06c1\u06cc\u06ba \u2013 PostgreSQL \u0645\u062b\u0627\u0644\u0648\u06ba \u06a9\u06d2 \u0633\u0627\u062a\u06be \u0627\u06cc\u06a9 \u0639\u0645\u0644\u06cc \u06af\u0627\u0626\u06cc\u0688"},"content":{"rendered":"\n<div id=\"\">\n<p>\u06c1\u0631 \u0688\u0648\u06cc\u0644\u067e\u0631 \u06a9\u0648 \u0622\u062e\u0631 \u06a9\u0627\u0631 \u0633\u0633\u062a \u0633\u0648\u0627\u0644\u0627\u062a \u06a9\u0627 \u0633\u0627\u0645\u0646\u0627 \u06a9\u0631\u0646\u0627 \u067e\u0691\u062a\u0627 \u06c1\u06d2\u06d4 \u0645\u06cc\u0632\u06cc\u06ba \u0633\u06cc\u06a9\u0691\u0648\u06ba \u0642\u0637\u0627\u0631\u0648\u06ba \u0633\u06d2 \u0628\u0691\u06be \u06a9\u0631 \u0644\u0627\u06a9\u06be\u0648\u06ba \u0642\u0637\u0627\u0631\u0648\u06ba \u062a\u06a9 \u067e\u06c1\u0646\u0686 \u06af\u0626\u06cc \u06c1\u06cc\u06ba\u060c \u0627\u0648\u0631 \u0622\u067e\u0631\u06cc\u0634\u0646\u0632 \u062c\u0648 \u067e\u06c1\u0644\u06d2 \u0645\u0644\u06cc \u0633\u06cc\u06a9\u0646\u0688 \u0644\u06cc\u062a\u06d2 \u062a\u06be\u06d2 \u0627\u0628 \u0633\u06cc\u06a9\u0646\u0688 \u06cc\u0627 \u0627\u0633 \u0633\u06d2 \u0632\u06cc\u0627\u062f\u06c1 \u0648\u0642\u062a \u0644\u06af\u062a\u06d2 \u06c1\u06cc\u06ba\u06d4<\/p>\n<p>\u062a\u0631\u0645\u06cc\u0645 \u0639\u0627\u0645 \u0637\u0648\u0631 \u067e\u0631 \u0627\u0634\u0627\u0631\u06cc\u06c1 \u062c\u0627\u062a \u06c1\u06cc\u06ba\u06d4<\/p>\n<p>\u0688\u06cc\u0679\u0627 \u0628\u06cc\u0633 \u0627\u0646\u0688\u06cc\u06a9\u0633 \u0627\u06cc\u06a9 \u0688\u06cc\u0679\u0627 \u0688\u06be\u0627\u0646\u0686\u06c1 \u06c1\u06d2 \u062c\u0648 \u067e\u0648\u0631\u06d2 \u0679\u06cc\u0628\u0644 \u06a9\u0648 \u0627\u0633\u06a9\u06cc\u0646 \u06a9\u06cc\u06d2 \u0628\u063a\u06cc\u0631 \u0688\u06cc\u0679\u0627 \u0628\u06cc\u0633 \u06a9\u0648 \u062a\u06cc\u0632\u06cc \u0633\u06d2 \u0642\u0637\u0627\u0631\u06cc\u06ba \u062a\u0644\u0627\u0634 \u06a9\u0631\u0646\u06d2 \u0645\u06cc\u06ba \u0645\u062f\u062f \u06a9\u0631\u062a\u0627 \u06c1\u06d2\u06d4 \u06cc\u06c1 \u0646\u0635\u0627\u0628\u06cc \u06a9\u062a\u0627\u0628 \u06a9\u06d2 \u067e\u0686\u06be\u0644\u06d2 \u062d\u0635\u06d2 \u0645\u06cc\u06ba \u0627\u0646\u0688\u06cc\u06a9\u0633 \u06a9\u06cc \u0637\u0631\u062d \u06a9\u0627\u0645 \u06a9\u0631\u062a\u0627 \u06c1\u06d2\u06d4 \u0645\u0648\u0636\u0648\u0639 \u062a\u0644\u0627\u0634 \u06a9\u0631\u0646\u06d2 \u06a9\u06d2 \u0644\u06cc\u06d2 \u06c1\u0631 \u0635\u0641\u062d\u06c1 \u06a9\u0648 \u067e\u0691\u06be\u0646\u06d2 \u06a9\u06d2 \u0628\u062c\u0627\u0626\u06d2\u060c \u0627\u0634\u0627\u0631\u06cc\u06c1 \u0645\u06cc\u06ba \u0627\u0633 \u0635\u0641\u062d\u06c1 \u0646\u0645\u0628\u0631 \u06a9\u0648 \u062f\u06cc\u06a9\u06be\u06cc\u06ba \u0627\u0648\u0631 \u0627\u0633 \u067e\u0631 \u062c\u0627\u0626\u06cc\u06ba\u06d4<\/p>\n<p>\u0627\u0633 \u0679\u06cc\u0648\u0679\u0648\u0631\u06cc\u0644 \u0645\u06cc\u06ba\u060c \u0622\u067e \u0633\u06cc\u06a9\u06be\u06cc\u06ba \u06af\u06d2 \u06a9\u06c1 \u0627\u0634\u0627\u0631\u06cc\u06c1 \u062c\u0627\u062a \u0627\u0646\u062f\u0631\u0648\u0646\u06cc \u0637\u0648\u0631 \u067e\u0631 \u06a9\u06cc\u0633\u06d2 \u06a9\u0627\u0645 \u06a9\u0631\u062a\u06d2 \u06c1\u06cc\u06ba\u060c PostgreSQL \u0645\u06cc\u06ba \u0627\u0634\u0627\u0631\u06cc\u06c1 \u062c\u0627\u062a \u06a9\u0648 \u0645\u0624\u062b\u0631 \u0637\u0631\u06cc\u0642\u06d2 \u0633\u06d2 \u06a9\u06cc\u0633\u06d2 \u0628\u0646\u0627\u06cc\u0627 \u0627\u0648\u0631 \u0627\u0633\u062a\u0639\u0645\u0627\u0644 \u06a9\u06cc\u0627 \u062c\u0627\u0626\u06d2\u060c \u0627\u0648\u0631 \u0627\u0646 \u0639\u0627\u0645 \u063a\u0644\u0637\u06cc\u0648\u06ba \u0633\u06d2 \u06a9\u06cc\u0633\u06d2 \u0628\u0686\u0646\u0627 \u06c1\u06d2 \u062c\u0648 \u0627\u0634\u0627\u0631\u06cc\u06c1 \u062c\u0627\u062a \u06a9\u0648 \u0628\u06cc\u06a9\u0627\u0631 \u06cc\u0627 \u0646\u0642\u0635\u0627\u0646 \u062f\u06c1 \u0628\u0646\u0627 \u0633\u06a9\u062a\u06cc \u06c1\u06cc\u06ba\u06d4<\/p>\n<h2 id=\"heading-table-of-contents\">\u0627\u0646\u0688\u06cc\u06a9\u0633<\/h2>\n<h2 id=\"heading-prerequisites\">\u0634\u0631\u0637\u06cc\u06ba<\/h2>\n<p>\u0645\u062b\u0627\u0644 \u06a9\u06cc \u067e\u06cc\u0631\u0648\u06cc \u06a9\u0631\u0646\u06d2 \u06a9\u06d2 \u0644\u06cc\u06d2\u060c \u0622\u067e \u06a9\u0648 \u0636\u0631\u0648\u0631\u062a \u06c1\u0648 \u06af\u06cc:<\/p>\n<ul>\n<li>\n<p>\u0627\u06cc\u0633 \u06a9\u06cc\u0648 \u0627\u06cc\u0644 \u06a9\u0627 \u0628\u0646\u06cc\u0627\u062f\u06cc \u0639\u0644\u0645 (\u0645\u0646\u062a\u062e\u0628 \u06a9\u0631\u06cc\u06ba\u060c \u062f\u0627\u062e\u0644 \u06a9\u0631\u06cc\u06ba\u060c \u0627\u067e \u0688\u06cc\u0679 \u06a9\u0631\u06cc\u06ba\u060c \u062d\u0630\u0641 \u06a9\u0631\u06cc\u06ba\u060c \u06a9\u06c1\u0627\u06ba\u060c \u062c\u0648\u0627\u0626\u0646 \u06a9\u0631\u06cc\u06ba)<\/p>\n<\/li>\n<li>\n<p>\u0686\u0644 \u0631\u06c1\u0627 \u06c1\u06d2 PostgreSQL \u0645\u062b\u0627\u0644 (\u0648\u0631\u0698\u0646 12 \u06cc\u0627 \u0627\u0633 \u0633\u06d2 \u0627\u0648\u067e\u0631)<\/p>\n<\/li>\n<li>\n<p>SQL \u06a9\u0644\u0627\u0626\u0646\u0679 \u0645\u0646\u062f\u0631\u062c\u06c1 \u0630\u06cc\u0644 \u06c1\u06d2: <code>psql<\/code>pgAdmin \u06cc\u0627 DBeaver<\/p>\n<\/li>\n<\/ul>\n<p>\u0627\u06af\u0631 \u0622\u067e \u06a9\u06d2 \u067e\u0627\u0633 \u067e\u0648\u0633\u0679\u06af\u0631\u06cc \u0627\u06cc\u0633 \u06a9\u06cc\u0648 \u0627\u06cc\u0644 \u0645\u0642\u0627\u0645\u06cc \u0637\u0648\u0631 \u067e\u0631 \u0627\u0646\u0633\u0679\u0627\u0644 \u0646\u06c1\u06cc\u06ba \u06c1\u06d2\u060c \u062a\u0648 \u0622\u067e \u0646\u06cc\u0648\u0646 \u06cc\u0627 \u0633\u0648\u067e\u0627 \u0628\u06cc\u0633 \u062c\u06cc\u0633\u06cc \u0633\u0631\u0648\u0633\u0632 \u0633\u06d2 \u0645\u0641\u062a \u06a9\u0644\u0627\u0624\u0688 \u06c1\u0648\u0633\u0679\u0688 \u0645\u062b\u0627\u0644\u06cc\u06ba \u0627\u0633\u062a\u0639\u0645\u0627\u0644 \u06a9\u0631 \u0633\u06a9\u062a\u06d2 \u06c1\u06cc\u06ba\u06d4<\/p>\n<h2 id=\"heading-why-do-you-need-indexes\">\u06c1\u0645\u06cc\u06ba \u0627\u0634\u0627\u0631\u06cc\u06c1 \u062c\u0627\u062a \u06a9\u06cc \u0636\u0631\u0648\u0631\u062a \u06a9\u06cc\u0648\u06ba \u06c1\u06d2\u061f<\/h2>\n<p>\u0627\u06af\u0631 \u0622\u067e \u062f\u0631\u062c \u0630\u06cc\u0644 \u0627\u0633\u062a\u0641\u0633\u0627\u0631 \u0686\u0644\u0627\u062a\u06d2 \u06c1\u06cc\u06ba: <code>SELECT * FROM users WHERE email=\"jane@example.com\"<\/code>\u0688\u06cc\u0679\u0627 \u0628\u06cc\u0633 \u06a9\u0648 \u0645\u0645\u0627\u062b\u0644 \u0642\u0637\u0627\u0631\u06cc\u06ba \u062a\u0644\u0627\u0634 \u06a9\u0631\u0646\u0627 \u06c1\u0648\u06ba \u06af\u06cc\u06d4 \u0627\u06af\u0631 \u06a9\u0648\u0626\u06cc \u0627\u0646\u0688\u06cc\u06a9\u0633 \u0646\u06c1\u06cc\u06ba \u06c1\u06d2 \u062a\u0648\u060c PostgreSQL \u0645\u0646\u062f\u0631\u062c\u06c1 \u0630\u06cc\u0644 \u06a9\u0627\u0645 \u06a9\u0631\u062a\u0627 \u06c1\u06d2: <strong>\u062a\u0631\u062a\u06cc\u0628 \u0648\u0627\u0631 \u0627\u0633\u06a9\u06cc\u0646<\/strong> &#8211; \u0679\u06cc\u0628\u0644 \u0645\u06cc\u06ba \u06c1\u0631 \u0627\u06cc\u06a9 \u0642\u0637\u0627\u0631 \u06a9\u0648 \u067e\u0691\u06be\u06cc\u06ba \u0627\u0648\u0631 \u0686\u06cc\u06a9 \u06a9\u0631\u06cc\u06ba: <code>email<\/code> \u06a9\u0627\u0644\u0645 \u0645\u0644\u062a\u06d2 \u06c1\u06cc\u06ba\u06d4<\/p>\n<p>\u06cc\u06c1 100 \u0642\u0637\u0627\u0631\u0648\u06ba \u0648\u0627\u0644\u06cc \u0645\u06cc\u0632 \u06a9\u06d2 \u0644\u06cc\u06d2 \u0679\u06be\u06cc\u06a9 \u06c1\u06d2\u06d4 10 \u0645\u0644\u06cc\u0646 \u0642\u0637\u0627\u0631\u0648\u06ba \u0648\u0627\u0644\u06cc \u0645\u06cc\u0632\u0648\u06ba \u06a9\u06d2 \u0644\u06cc\u06d2\u060c \u06cc\u06c1 \u0628\u06c1\u062a \u0633\u0633\u062a \u06c1\u06d2\u06d4<\/p>\n<p>\u0627\u0634\u0627\u0631\u06cc\u06c1 \u062c\u0627\u062a \u0627\u0633 \u0645\u0633\u0626\u0644\u06d2 \u06a9\u0648 \u0627\u06cc\u06a9 \u0639\u0644\u06cc\u062d\u062f\u06c1 \u062a\u0631\u062a\u06cc\u0628 \u0634\u062f\u06c1 \u0688\u06cc\u0679\u0627 \u0688\u06be\u0627\u0646\u0686\u06c1 \u0628\u0646\u0627 \u06a9\u0631 \u062d\u0644 \u06a9\u0631\u062a\u06d2 \u06c1\u06cc\u06ba \u062c\u0648 \u06a9\u0627\u0644\u0645 \u06a9\u06cc \u0642\u062f\u0631\u0648\u06ba \u06a9\u0648 \u0642\u0637\u0627\u0631 \u06a9\u06cc \u067e\u0648\u0632\u06cc\u0634\u0646\u0648\u06ba \u067e\u0631 \u0646\u0642\u0634\u06c1 \u0628\u0646\u0627\u062a\u0627 \u06c1\u06d2\u06d4 10 \u0645\u0644\u06cc\u0646 \u0642\u0637\u0627\u0631\u0648\u06ba \u06a9\u0648 \u0627\u0633\u06a9\u06cc\u0646 \u06a9\u0631\u0646\u06d2 \u06a9\u06d2 \u0628\u062c\u0627\u0626\u06d2\u060c PostgreSQL \u0627\u0646\u0688\u06cc\u06a9\u0633 \u0645\u06cc\u06ba \u0642\u062f\u0631\u0648\u06ba \u06a9\u0648 \u062f\u06cc\u06a9\u06be \u0633\u06a9\u062a\u0627 \u06c1\u06d2 \u0627\u0648\u0631 \u0628\u0631\u0627\u06c1 \u0631\u0627\u0633\u062a \u0645\u0645\u0627\u062b\u0644 \u0642\u0637\u0627\u0631\u0648\u06ba \u0645\u06cc\u06ba \u062c\u0627 \u0633\u06a9\u062a\u0627 \u06c1\u06d2\u06d4 \u06cc\u06c1 \u0627\u0633\u062a\u0641\u0633\u0627\u0631 \u06a9\u06d2 \u0627\u0648\u0642\u0627\u062a \u06a9\u0648 \u0633\u06cc\u06a9\u0646\u0688 \u0633\u06d2 \u0645\u0644\u06cc \u0633\u06cc\u06a9\u0646\u0688 \u062a\u06a9 \u06a9\u0645 \u06a9\u0631 \u0633\u06a9\u062a\u0627 \u06c1\u06d2\u06d4<\/p>\n<p>\u062a\u0627\u06c1\u0645\u060c \u0627\u0646\u0688\u06cc\u06a9\u0633 \u0622\u0632\u0627\u062f \u0646\u06c1\u06cc\u06ba \u06c1\u06cc\u06ba\u06d4 \u0627\u0633 \u06a9\u06d2 \u0641\u0648\u0627\u0626\u062f \u0627\u0648\u0631 \u0646\u0642\u0635\u0627\u0646\u0627\u062a \u06c1\u06cc\u06ba \u062c\u0646\u06c1\u06cc\u06ba \u0622\u067e \u06a9\u0648 \u06a9\u06c1\u06cc\u06ba \u0628\u06be\u06cc \u0634\u0627\u0645\u0644 \u06a9\u0631\u0646\u06d2 \u0633\u06d2 \u067e\u06c1\u0644\u06d2 \u0633\u0645\u062c\u06be\u0646\u0627 \u06c1\u0648\u06af\u0627\u06d4 \u0622\u067e \u0627\u0633 \u0679\u06cc\u0648\u0679\u0648\u0631\u06cc\u0644 \u0645\u06cc\u06ba \u0627\u0646 \u0641\u0648\u0627\u0626\u062f \u0627\u0648\u0631 \u0646\u0642\u0635\u0627\u0646\u0627\u062a \u06a9\u06d2 \u0628\u0627\u0631\u06d2 \u0645\u06cc\u06ba \u0633\u06cc\u06a9\u06be\u06cc\u06ba \u06af\u06d2\u06d4<\/p>\n<h2 id=\"heading-how-indexes-work-under-the-hood\">\u0627\u0634\u0627\u0631\u06cc\u06c1 \u062c\u0627\u062a \u0627\u0646\u062f\u0631\u0648\u0646\u06cc \u0637\u0648\u0631 \u067e\u0631 \u06a9\u06cc\u0633\u06d2 \u06a9\u0627\u0645 \u06a9\u0631\u062a\u06d2 \u06c1\u06cc\u06ba\u06d4<\/h2>\n<p>PostgreSQL \u0645\u06cc\u06ba \u0688\u06cc\u0641\u0627\u0644\u0679 \u0627\u0646\u0688\u06cc\u06a9\u0633 \u06a9\u06cc \u0642\u0633\u0645 \u06c1\u06d2\u06d4 <strong>\u0628\u06cc \u062f\u0631\u062e\u062a<\/strong> (\u0645\u062a\u0648\u0627\u0632\u0646 \u062f\u0631\u062e\u062a)\u06d4 B-trees \u06a9\u06d2 \u06a9\u0627\u0645 \u06a9\u0631\u0646\u06d2 \u06a9\u06d2 \u0637\u0631\u06cc\u0642\u06c1 \u06a9\u0648 \u0633\u0645\u062c\u06be\u0646\u0627 \u0622\u067e \u06a9\u0648 \u06a9\u0628 \u0627\u0648\u0631 \u06a9\u06cc\u0633\u06d2 \u0627\u0646\u0688\u06cc\u06a9\u0633 \u06a9\u0631\u0646\u06d2 \u06a9\u06d2 \u0628\u0627\u0631\u06d2 \u0645\u06cc\u06ba \u0628\u06c1\u062a\u0631 \u0641\u06cc\u0635\u0644\u06d2 \u06a9\u0631\u0646\u06d2 \u0645\u06cc\u06ba \u0645\u062f\u062f \u06a9\u0631\u06d2 \u06af\u0627\u06d4<\/p>\n<p>B-trees \u0688\u06cc\u0679\u0627 \u06a9\u0648 \u062a\u0631\u062a\u06cc\u0628 \u0634\u062f\u06c1 \u062f\u0631\u062c\u06c1 \u0628\u0646\u062f\u06cc \u06a9\u06cc \u062a\u06cc\u0646 \u0633\u0637\u062d\u0648\u06ba \u0645\u06cc\u06ba \u062a\u0631\u062a\u06cc\u0628 \u062f\u06cc\u062a\u06d2 \u06c1\u06cc\u06ba\u06d4<\/p>\n<ol>\n<li>\n<p><strong>\u062c\u0691 \u0646\u0648\u0688<\/strong> &#8211; \u062f\u0631\u062e\u062a\u0648\u06ba \u06a9\u06cc \u0686\u0648\u0679\u06cc\u06d4 \u0627\u0633 \u0645\u06cc\u06ba \u06a9\u0626\u06cc \u0627\u0642\u062f\u0627\u0631 \u06c1\u06cc\u06ba \u062c\u0648 \u0688\u06cc\u0679\u0627 \u06a9\u0648 \u0648\u0633\u06cc\u0639 \u0631\u06cc\u0646\u062c \u0645\u06cc\u06ba \u062a\u0642\u0633\u06cc\u0645 \u06a9\u0631\u062a\u06cc \u06c1\u06cc\u06ba\u06d4<\/p>\n<\/li>\n<li>\n<p><strong>\u0627\u0646\u062f\u0631\u0648\u0646\u06cc \u0646\u0648\u0688<\/strong> &#8211; \u06c1\u0631 \u0627\u06cc\u06a9 \u062f\u0627\u0626\u0631\u06c1 \u06a9\u0627\u0631 \u0645\u06cc\u06ba \u062a\u0646\u06af \u06c1\u0648 \u062c\u0627\u062a\u0627 \u06c1\u06d2\u06d4<\/p>\n<\/li>\n<li>\n<p><strong>\u0644\u06cc\u0641 \u0646\u0648\u0688<\/strong> &#8211; \u0633\u0628 \u0633\u06d2 \u0646\u0686\u0644\u06cc \u0633\u0637\u062d\u06d4 \u06cc\u06c1 \u0679\u06cc\u0628\u0644 \u0645\u06cc\u06ba \u0645\u062a\u0639\u0644\u0642\u06c1 \u0642\u0637\u0627\u0631 \u06a9\u06d2 \u067e\u0648\u0627\u0626\u0646\u0679\u0631 \u06a9\u06d2 \u0633\u0627\u062a\u06be \u0627\u0635\u0644 \u0627\u0634\u0627\u0631\u06cc\u06c1 \u06a9\u06cc \u0642\u062f\u0631 \u0631\u06a9\u06be\u062a\u0627 \u06c1\u06d2\u06d4<\/p>\n<\/li>\n<\/ol>\n<p>\u062c\u0628 PostgreSQL \u0627\u06cc\u06a9 \u0642\u062f\u0631 \u062a\u0644\u0627\u0634 \u06a9\u0631\u0646\u06d2 \u06a9\u06d2 \u0644\u06cc\u06d2 B-tree \u0627\u0646\u0688\u06cc\u06a9\u0633 \u06a9\u0627 \u0627\u0633\u062a\u0639\u0645\u0627\u0644 \u06a9\u0631\u062a\u0627 \u06c1\u06d2\u060c \u062a\u0648 \u06cc\u06c1 \u062c\u0691 \u0633\u06d2 \u0634\u0631\u0648\u0639 \u06c1\u0648\u062a\u0627 \u06c1\u06d2 \u0627\u0648\u0631 \u0627\u06cc\u06a9 \u0627\u06cc\u0633\u06d2 \u0631\u0627\u0633\u062a\u06d2 \u06a9\u06cc \u067e\u06cc\u0631\u0648\u06cc \u06a9\u0631\u062a\u0627 \u06c1\u06d2 \u062c\u0648 \u06c1\u062f\u0641 \u06a9\u06cc \u0642\u062f\u0631 \u0633\u06d2 \u0645\u0645\u0627\u062b\u0644 \u06c1\u0648\u060c \u0627\u0646\u062f\u0631\u0648\u0646\u06cc \u0646\u0648\u0688\u0633 \u0633\u06d2 \u06af\u0632\u0631\u062a\u0627 \u06c1\u06d2 \u062c\u0628 \u062a\u06a9 \u06a9\u06c1 \u06cc\u06c1 \u062f\u0631\u0633\u062a \u0644\u06cc\u0641 \u0646\u0648\u0688 \u062a\u06a9 \u0646\u06c1 \u067e\u06c1\u0646\u0686 \u062c\u0627\u0626\u06d2\u06d4 \u0627\u0633 \u0631\u0627\u0633\u062a\u06d2 \u06a9\u0648 \u0627\u06d2 \u06a9\u06c1\u0627 \u062c\u0627\u062a\u0627 \u06c1\u06d2\u06d4 <strong>\u062f\u0631\u062e\u062a \u06a9\u0627 \u0631\u0627\u0633\u062a\u06c1<\/strong>\u06cc\u06c1\u0627\u06ba \u062a\u06a9 \u06a9\u06c1 \u0644\u0627\u06a9\u06be\u0648\u06ba \u0642\u0637\u0627\u0631\u0648\u06ba \u0648\u0627\u0644\u06cc \u0645\u06cc\u0632\u0648\u06ba \u06a9\u06d2 \u0644\u06cc\u06d2\u060c \u0639\u0627\u0645 \u0637\u0648\u0631 \u067e\u0631 \u0635\u0631\u0641 3 \u06cc\u0627 4 \u0642\u062f\u0645\u0648\u06ba \u06a9\u06cc \u0636\u0631\u0648\u0631\u062a \u06c1\u0648\u062a\u06cc \u06c1\u06d2\u06d4<\/p>\n<p>\u0627\u0633\u06d2 \u0641\u0648\u0646 \u0628\u06a9 \u06a9\u06cc \u0637\u0631\u062d \u0633\u0648\u0686\u06cc\u06ba\u06d4 \u06cc\u06c1 \u067e\u06c1\u0644\u06d2 \u0635\u0641\u062d\u06d2 \u0633\u06d2 \u0634\u0631\u0648\u0639 \u0646\u06c1\u06cc\u06ba \u06c1\u0648\u062a\u0627 \u0627\u0648\u0631 \u062a\u0645\u0627\u0645 \u0646\u0627\u0645 \u067e\u0691\u06be\u062a\u0627 \u06c1\u06d2\u06d4 \u0645\u0648\u0679\u06d2 \u0637\u0648\u0631 \u067e\u0631\u060c \u0622\u067e \u062f\u0627\u0626\u06cc\u06ba \u062d\u0635\u06d2 (\u062c\u0691) \u06a9\u0648 \u06a9\u06be\u0648\u0644\u062a\u06d2 \u06c1\u06cc\u06ba\u060c \u0627\u0633\u06d2 \u062f\u0627\u0626\u06cc\u06ba \u0635\u0641\u062d\u06c1 (\u0627\u0646\u062f\u0631\u0648\u0646\u06cc \u0646\u0648\u0688) \u062a\u06a9 \u0645\u062d\u062f\u0648\u062f \u06a9\u0631\u062a\u06d2 \u06c1\u06cc\u06ba\u060c \u0627\u0648\u0631 \u067e\u06be\u0631 \u0627\u0633 \u0635\u0641\u062d\u06c1 (\u0644\u06cc\u0641 \u0646\u0648\u0688) \u067e\u0631 \u0645\u0648\u062c\u0648\u062f \u0627\u0634\u06cc\u0627\u0621 \u06a9\u0648 \u0627\u0633\u06a9\u06cc\u0646 \u06a9\u0631\u062a\u06d2 \u06c1\u06cc\u06ba\u06d4<\/p>\n<p>\u06cc\u06c1 \u062a\u0631\u062a\u06cc\u0628 \u0634\u062f\u06c1 \u0688\u06be\u0627\u0646\u0686\u06c1 \u0628\u06be\u06cc \u06cc\u06c1\u06cc \u0648\u062c\u06c1 \u06c1\u06d2 \u06a9\u06c1 \u0628\u06cc \u0679\u0631\u06cc \u0627\u0646\u0688\u06cc\u06a9\u0633 \u0631\u06cc\u0646\u062c \u06a9\u06d2 \u0633\u0648\u0627\u0644\u0627\u062a \u06a9\u06d2 \u0644\u06cc\u06d2 \u0627\u0686\u06be\u06cc \u0637\u0631\u062d \u06a9\u0627\u0645 \u06a9\u0631\u062a\u06d2 \u06c1\u06cc\u06ba \u062c\u06cc\u0633\u06d2: <code>WHERE price > 50 AND price < 100<\/code>. \u0688\u06cc\u0679\u0627 \u0628\u06cc\u0633 \u062f\u0631\u062e\u062a \u0645\u06cc\u06ba \u0627\u06cc\u06a9 \u0646\u0642\u0637\u06c1 \u0622\u063a\u0627\u0632 \u062a\u0644\u0627\u0634 \u06a9\u0631\u062a\u0627 \u06c1\u06d2 \u0627\u0648\u0631 \u067e\u06be\u0631 \u067e\u06c1\u0644\u06d2 \u0633\u06d2 \u062a\u0631\u062a\u06cc\u0628 \u062f\u06cc\u06d2 \u06af\u0626\u06d2 \u0644\u06cc\u0641 \u0646\u0648\u0688\u0633 \u06a9\u06d2 \u0630\u0631\u06cc\u0639\u06d2 \u0622\u06af\u06d2 \u06a9\u0648 \u0627\u0633\u06a9\u06cc\u0646 \u06a9\u0631\u062a\u0627 \u06c1\u06d2\u06d4<\/p>\n<h2 id=\"heading-how-to-create-your-first-index\">\u0627\u067e\u0646\u0627 \u067e\u06c1\u0644\u0627 \u0627\u0646\u0688\u06cc\u06a9\u0633 \u06a9\u06cc\u0633\u06d2 \u0628\u0646\u0627\u0626\u06cc\u06ba<\/h2>\n<p>\u0622\u0626\u06cc\u06d2 \u0627\u06cc\u06a9 \u0639\u0645\u0644\u06cc \u0645\u062b\u0627\u0644 \u0628\u0646\u0627\u0626\u06cc\u06ba\u06d4 \u0622\u0626\u06cc\u06d2 \u0627\u06cc\u06a9 \u0679\u06cc\u0628\u0644 \u0628\u0646\u0627\u062a\u06d2 \u06c1\u06cc\u06ba\u060c \u0627\u0633 \u0645\u06cc\u06ba \u0688\u06cc\u0679\u0627 \u0644\u0648\u0688 \u06a9\u0631\u062a\u06d2 \u06c1\u06cc\u06ba\u060c \u0627\u0648\u0631 \u062f\u06cc\u06a9\u06be\u062a\u06d2 \u06c1\u06cc\u06ba \u06a9\u06c1 \u0627\u0634\u0627\u0631\u06cc\u06c1 \u062c\u0627\u062a \u0645\u06cc\u06ba \u06a9\u06cc\u0627 \u0641\u0631\u0642 \u067e\u0691\u062a\u0627 \u06c1\u06d2\u06d4<\/p>\n<h3 id=\"heading-step-1-create-the-table-and-insert-sample-data\">\u0645\u0631\u062d\u0644\u06c1 1 - \u0679\u06cc\u0628\u0644 \u0628\u0646\u0627\u0626\u06cc\u06ba \u0627\u0648\u0631 \u0646\u0645\u0648\u0646\u06c1 \u0688\u06cc\u0679\u0627 \u062f\u0627\u062e\u0644 \u06a9\u0631\u06cc\u06ba\u06d4<\/h3>\n<pre><code class=\"language-sql\">CREATE TABLE customers (\n    id SERIAL PRIMARY KEY,\n    first_name VARCHAR(50) NOT NULL,\n    last_name VARCHAR(50) NOT NULL,\n    email VARCHAR(100) NOT NULL,\n    city VARCHAR(50),\n    created_at TIMESTAMP DEFAULT NOW()\n);\n<\/code><\/pre>\n<p>\u0627\u0628 \u0628\u0691\u06cc \u062a\u0639\u062f\u0627\u062f \u0645\u06cc\u06ba \u0642\u0637\u0627\u0631\u06cc\u06ba \u0688\u0627\u0644\u06cc\u06ba \u062a\u0627\u06a9\u06c1 \u0622\u067e \u06a9\u0627\u0631\u06a9\u0631\u062f\u06af\u06cc \u06a9\u0627 \u0641\u0631\u0642 \u062f\u06cc\u06a9\u06be \u0633\u06a9\u06cc\u06ba\u06d4 \u06cc\u06c1 \u0646\u0645\u0648\u0646\u06c1 \u0688\u06cc\u0679\u0627 \u06a9\u06cc 500,000 \u0642\u0637\u0627\u0631\u06cc\u06ba \u0628\u0646\u0627\u062a\u0627 \u06c1\u06d2\u06d4<\/p>\n<pre><code class=\"language-sql\">INSERT INTO customers (first_name, last_name, email, city)\nSELECT\n    'User' || gs,\n    'Last' || gs,\n    'user' || gs || '@example.com',\n    (ARRAY['Lagos', 'London', 'New York', 'Berlin', 'Tokyo'])[1 + (gs % 5)]\nFROM generate_series(1, 500000) AS gs;\n<\/code><\/pre>\n<h3 id=\"heading-step-2-query-without-an-index\">\u0645\u0631\u062d\u0644\u06c1 2 - \u0627\u0646\u0688\u06cc\u06a9\u0633 \u06a9\u06d2 \u0628\u063a\u06cc\u0631 \u0633\u0648\u0627\u0644<\/h3>\n<pre><code class=\"language-sql\">EXPLAIN ANALYZE\nSELECT * FROM customers WHERE email=\"user250000@example.com\";\n<\/code><\/pre>\n<p>\u0622\u067e \u06a9\u0648 \u0645\u0646\u062f\u0631\u062c\u06c1 \u0630\u06cc\u0644 \u06a9\u06cc \u0637\u0631\u062d \u0622\u0624\u0679 \u067e\u0679 \u0646\u0638\u0631 \u0622\u0626\u06d2 \u06af\u0627:<\/p>\n<pre><code class=\"language-plaintext\">Seq Scan on customers  (cost=0.00..11374.00 rows=1 width=52) (actual time=45.123..91.456 rows=1 loops=1)\n  Filter: ((email)::text=\"user250000@example.com\"::text)\n  Rows Removed by Filter: 499999\nPlanning Time: 0.085 ms\nExecution Time: 91.502 ms\n<\/code><\/pre>\n<p>\u06cc\u06c1\u0627\u06ba \u0627\u06c1\u0645 \u062a\u0641\u0635\u06cc\u0644\u0627\u062a \u06cc\u06c1 \u06c1\u06cc\u06ba: <code>Seq Scan<\/code> - PostgreSQL \u0646\u06d2 \u0627\u06cc\u06a9 \u0645\u06cc\u0686 \u062a\u0644\u0627\u0634 \u06a9\u0631\u0646\u06d2 \u06a9\u06d2 \u0644\u06cc\u06d2 \u062a\u0645\u0627\u0645 500,000 \u0642\u0637\u0627\u0631\u0648\u06ba \u06a9\u0648 \u0627\u0633\u06a9\u06cc\u0646 \u06a9\u06cc\u0627\u06d4 499,999 \u0642\u0637\u0627\u0631\u06cc\u06ba \u0641\u0644\u0679\u0631 \u06a9\u06cc \u06af\u0626\u06cc\u06ba\u06d4 \u06a9\u06cc\u0627 \u06a9\u0627\u0645 \u06a9\u06cc \u0628\u0631\u0628\u0627\u062f\u06cc.<\/p>\n<h3 id=\"heading-step-3-create-an-index\">\u0645\u0631\u062d\u0644\u06c1 3 - \u0627\u0646\u0688\u06cc\u06a9\u0633 \u0628\u0646\u0627\u0626\u06cc\u06ba<\/h3>\n<pre><code class=\"language-sql\">CREATE INDEX idx_customers_email ON customers (email);\n<\/code><\/pre>\n<p>\u06cc\u06c1 \u0627\u06cc\u06a9 \u0628\u06cc \u0679\u0631\u06cc \u0627\u0646\u0688\u06cc\u06a9\u0633 \u0628\u0646\u0627\u062a\u0627 \u06c1\u06d2\u06d4 <code>email<\/code> \u06af\u0631\u0645\u06cc \u0646\u0627\u0645 <code>idx_customers_email<\/code> \u0639\u0627\u0645 \u0646\u0627\u0645\u0648\u06ba \u06a9\u06d2 \u0631\u0648\u0627\u062c\u0648\u06ba \u067e\u0631 \u0639\u0645\u0644 \u06a9\u0631\u06cc\u06ba\u06d4 <code>idx_<\/code> \u0627\u0633 \u06a9\u06d2 \u0628\u0639\u062f \u0633\u0627\u0628\u0642\u06c1\u060c \u0679\u06cc\u0628\u0644 \u06a9\u0627 \u0646\u0627\u0645\u060c \u0627\u0648\u0631 \u06a9\u0627\u0644\u0645 \u06a9\u0627 \u0646\u0627\u0645 \u0622\u062a\u0627 \u06c1\u06d2\u06d4<\/p>\n<h3 id=\"heading-step-4-query-with-the-index\">\u0645\u0631\u062d\u0644\u06c1 4 - \u0627\u0646\u0688\u06cc\u06a9\u0633 \u06a9\u06d2 \u0644\u062d\u0627\u0638 \u0633\u06d2 \u0633\u0648\u0627\u0644<\/h3>\n<p>\u062f\u0648\u0628\u0627\u0631\u06c1 \u0648\u06c1\u06cc \u0627\u0633\u062a\u0641\u0633\u0627\u0631 \u0686\u0644\u0627\u0626\u06cc\u06ba\u06d4<\/p>\n<pre><code class=\"language-sql\">EXPLAIN ANALYZE\nSELECT * FROM customers WHERE email=\"user250000@example.com\";\n<\/code><\/pre>\n<p>\u0627\u0628 \u0622\u067e \u06a9\u0686\u06be \u0627\u0633 \u0637\u0631\u062d \u062f\u06cc\u06a9\u06be\u06cc\u06ba \u06af\u06d2:<\/p>\n<pre><code class=\"language-plaintext\">Index Scan using idx_customers_email on customers  (cost=0.42..8.44 rows=1 width=52) (actual time=0.034..0.036 rows=1 loops=1)\n  Index Cond: ((email)::text=\"user250000@example.com\"::text)\nPlanning Time: 0.112 ms\nExecution Time: 0.058 ms\n<\/code><\/pre>\n<p>\u0627\u0633\u06a9\u06cc\u0646 \u06a9\u06cc \u0642\u0633\u0645 \u0627\u0633 \u0633\u06d2 \u062a\u0628\u062f\u06cc\u0644 \u06c1\u0648\u0626\u06cc: <code>Seq Scan<\/code> \u06a9\u0648 <code>Index Scan<\/code>. \u0639\u0645\u0644 \u062f\u0631\u0622\u0645\u062f \u06a9\u0627 \u0648\u0642\u062a ~91ms \u0633\u06d2 ~0.06ms \u062a\u06a9 \u06a9\u0645 \u06c1\u0648 \u06af\u06cc\u0627\u06d4 \u06cc\u06c1 SQL \u06a9\u06cc \u0627\u06cc\u06a9 \u0644\u0627\u0626\u0646 \u067e\u0631 \u062a\u0642\u0631\u06cc\u0628\u0627\u064b 1,500x \u06a9\u0627\u0631\u06a9\u0631\u062f\u06af\u06cc \u0645\u06cc\u06ba \u0628\u06c1\u062a\u0631\u06cc \u06c1\u06d2\u06d4<\/p>\n<h2 id=\"heading-how-to-use-explain-analyze-to-measure-performance\">\u0627\u0633\u062a\u0639\u0645\u0627\u0644 \u06a9\u0631\u0646\u06d2 \u06a9\u0627 \u0637\u0631\u06cc\u0642\u06c1 <code>EXPLAIN ANALYZE<\/code> \u06a9\u0627\u0631\u06a9\u0631\u062f\u06af\u06cc \u06a9\u06cc \u067e\u06cc\u0645\u0627\u0626\u0634<\/h2>\n<p><code>EXPLAIN ANALYZE<\/code>    \u06cc\u06c1 \u0633\u0645\u062c\u06be\u0646\u06d2 \u06a9\u0627 \u0633\u0628 \u0633\u06d2 \u0627\u06c1\u0645 \u0679\u0648\u0644 \u06c1\u06d2 \u06a9\u06c1 PostgreSQL \u0633\u0648\u0627\u0644\u0627\u062a \u06a9\u0648 \u06a9\u06cc\u0633\u06d2 \u0627\u0646\u062c\u0627\u0645 \u062f\u06cc\u062a\u0627 \u06c1\u06d2\u06d4 \u06c1\u0645 \u0627\u0633\u06d2 \u067e\u0686\u06be\u0644\u06d2 \u062d\u0635\u06d2 \u0645\u06cc\u06ba \u067e\u06c1\u0644\u06d2 \u06c1\u06cc \u062f\u06cc\u06a9\u06be \u0686\u06a9\u06d2 \u06c1\u06cc\u06ba\u060c \u0644\u06cc\u06a9\u0646 \u0622\u0626\u06cc\u06d2 \u0627\u0633\u06d2 \u062a\u0648\u0691\u062a\u06d2 \u06c1\u06cc\u06ba \u06a9\u06c1 \u0622\u0624\u0679 \u067e\u0679 \u06a9\u0627 \u06a9\u06cc\u0627 \u0645\u0637\u0644\u0628 \u06c1\u06d2\u06d4<\/p>\n<pre><code class=\"language-sql\">EXPLAIN ANALYZE SELECT * FROM customers WHERE city = 'Lagos';\n<\/code><\/pre>\n<p>\u0622\u0624\u0679 \u067e\u0679 \u06a9\u0686\u06be \u0645\u0639\u0644\u0648\u0645\u0627\u062a \u062f\u06a9\u06be\u0627\u062a\u0627 \u06c1\u06d2:<\/p>\n<ul>\n<li>\n<p><strong>\u0627\u0633\u06a9\u06cc\u0646 \u06a9\u06cc \u0642\u0633\u0645<\/strong> \u2014 \u0622\u06cc\u0627 PostgreSQL \u0646\u06d2 \u062a\u0631\u062a\u06cc\u0628 \u0648\u0627\u0631 \u0627\u0633\u06a9\u06cc\u0646\u060c \u0627\u0646\u0688\u06cc\u06a9\u0633 \u0627\u0633\u06a9\u06cc\u0646\u060c \u0628\u0679 \u0645\u06cc\u067e \u0627\u0646\u0688\u06cc\u06a9\u0633 \u0627\u0633\u06a9\u06cc\u0646\u060c \u06cc\u0627 \u0631\u0633\u0627\u0626\u06cc \u06a9\u0627 \u062f\u0648\u0633\u0631\u0627 \u0637\u0631\u06cc\u0642\u06c1 \u0627\u0633\u062a\u0639\u0645\u0627\u0644 \u06a9\u06cc\u0627 \u06c1\u06d2\u06d4<\/p>\n<\/li>\n<li>\n<p><strong>\u062e\u0631\u0686<\/strong> - \u0635\u0648\u0627\u0628\u062f\u06cc\u062f\u06cc \u0627\u06a9\u0627\u0626\u06cc\u0648\u06ba \u0645\u06cc\u06ba \u062a\u062e\u0645\u06cc\u0646\u06c1 \u0644\u0627\u06af\u062a\u06d4 \u067e\u06c1\u0644\u0627 \u0646\u0645\u0628\u0631 \u0627\u0628\u062a\u062f\u0627\u0626\u06cc \u0644\u0627\u06af\u062a \u06c1\u06d2 \u0627\u0648\u0631 \u062f\u0648\u0633\u0631\u0627 \u0646\u0645\u0628\u0631 \u06a9\u0644 \u0644\u0627\u06af\u062a \u06c1\u06d2\u06d4<\/p>\n<\/li>\n<li>\n<p><strong>\u0644\u0627\u0626\u0646<\/strong> \u2014 PostgreSQL \u06a9\u0648 \u06a9\u062a\u0646\u06cc \u0642\u0637\u0627\u0631\u06cc\u06ba \u0645\u0644\u0646\u06d2 \u06a9\u06cc \u062a\u0648\u0642\u0639 \u062a\u06be\u06cc \u0627\u0648\u0631 \u0627\u0633\u06d2 \u062f\u0631\u062d\u0642\u06cc\u0642\u062a \u06a9\u062a\u0646\u06cc \u0642\u0637\u0627\u0631\u06cc\u06ba \u0645\u0644\u06cc\u06ba\u06d4<\/p>\n<\/li>\n<li>\n<p><strong>\u062d\u0642\u06cc\u0642\u06cc \u0648\u0642\u062a<\/strong> - \u0627\u0635\u0644 \u0648\u0642\u062a (\u0645\u0644\u06cc \u0633\u06cc\u06a9\u0646\u0688 \u0645\u06cc\u06ba) \u0627\u0633\u062a\u0641\u0633\u0627\u0631 \u067e\u0631 \u0639\u0645\u0644 \u06a9\u0631\u0646\u06d2 \u0645\u06cc\u06ba \u0644\u06af\u062a\u0627 \u06c1\u06d2\u06d4<\/p>\n<\/li>\n<li>\n<p><strong>\u0642\u0637\u0627\u0631\u06cc\u06ba \u0641\u0644\u0679\u0631 \u06a9\u06d2 \u0630\u0631\u06cc\u0639\u06d2 \u06c1\u0679\u0627 \u062f\u06cc \u06af\u0626\u06cc\u06ba\u06d4<\/strong> - \u0633\u06a9\u06cc\u0646 \u06a9\u06cc \u06af\u0626\u06cc \u0642\u0637\u0627\u0631\u0648\u06ba \u06a9\u06cc \u062a\u0639\u062f\u0627\u062f \u0644\u06cc\u06a9\u0646 \u0645\u0639\u06cc\u0627\u0631 \u0633\u06d2 \u0645\u0645\u0627\u062b\u0644 \u0646\u06c1\u06cc\u06ba\u06d4<\/p>\n<\/li>\n<\/ul>\n<p>\u0627\u06af\u0631 \u0622\u067e \u062f\u06cc\u06a9\u06be\u062a\u06d2 \u06c1\u06cc\u06ba <code>Seq Scan<\/code> \u0627\u06cc\u06a9 \u0627\u062e\u062a\u06cc\u0627\u0631\u06cc WHERE \u0634\u0642 \u06a9\u06d2 \u0633\u0627\u062a\u06be \u0628\u0691\u06cc \u062c\u062f\u0648\u0644\u0648\u06ba \u0645\u06cc\u06ba\u060c \u06cc\u06c1 \u0639\u0627\u0645 \u0637\u0648\u0631 \u067e\u0631 \u0627\u0633 \u0628\u0627\u062a \u06a9\u06cc \u0639\u0644\u0627\u0645\u062a \u06c1\u06d2 \u06a9\u06c1 \u0627\u06cc\u06a9 \u0627\u0634\u0627\u0631\u06cc\u06c1 \u06a9\u06cc \u0636\u0631\u0648\u0631\u062a \u06c1\u06d2\u06d4 \u0627\u06af\u0631 \u0622\u067e \u062f\u06cc\u06a9\u06be\u062a\u06d2 \u06c1\u06cc\u06ba <code>Index Scan<\/code> \u06cc\u0627 <code>Index Only Scan<\/code>\u0627\u0646\u0688\u06cc\u06a9\u0633 \u06a9\u0627\u0645 \u06a9\u0631 \u0631\u06c1\u0627 \u06c1\u06d2\u06d4<\/p>\n<p>\u0627\u06cc\u06a9 \u0628\u0627\u062a \u0630\u06c1\u0646 \u0645\u06cc\u06ba \u0631\u06a9\u06be\u06cc\u06ba: <code>EXPLAIN<\/code> \u0628\u063a\u06cc\u0631 <code>ANALYZE<\/code> \u06cc\u06c1 \u062d\u0642\u06cc\u0642\u062a \u0645\u06cc\u06ba \u0627\u0633\u062a\u0641\u0633\u0627\u0631 \u067e\u0631 \u0639\u0645\u0644 \u06a9\u06cc\u06d2 \u0628\u063a\u06cc\u0631 \u0645\u0646\u0635\u0648\u0628\u06c1 \u062f\u06a9\u06be\u0627\u062a\u0627 \u06c1\u06d2\u06d4 <code>EXPLAIN ANALYZE<\/code> \u0627\u0633\u062a\u0641\u0633\u0627\u0631 \u06a9\u0648 \u0686\u0644\u0627\u0626\u06cc\u06ba \u0627\u0648\u0631 \u0648\u0642\u062a \u06a9\u0627 \u0627\u0635\u0644 \u0688\u06cc\u0679\u0627 \u0688\u0633\u067e\u0644\u06d2 \u06a9\u0631\u06cc\u06ba\u06d4 \u06c1\u0645\u06cc\u0634\u06c1 \u0627\u0633\u062a\u0639\u0645\u0627\u0644 \u06a9\u0631\u06cc\u06ba\u06d4 <code>EXPLAIN ANALYZE<\/code> \u06a9\u0627\u0631\u06a9\u0631\u062f\u06af\u06cc \u06a9\u06cc \u062c\u0627\u0646\u0686 \u06a9\u0631\u062a\u06d2 \u0648\u0642\u062a\u060c \u062a\u0628\u0627\u06c1 \u06a9\u0646 \u0633\u0648\u0627\u0644\u0627\u062a \u067e\u0631 \u0646\u06af\u0627\u06c1 \u0631\u06a9\u06be\u06cc\u06ba\u06d4 <code>EXPLAIN ANALYZE DELETE FROM ...<\/code> \u062f\u0631\u0627\u0635\u0644 \u0642\u0637\u0627\u0631 \u06a9\u0648 \u062d\u0630\u0641 \u06a9\u0631 \u062f\u06cc\u062a\u0627 \u06c1\u06d2\u06d4 \u0627\u0633\u06d2 \u0627\u06cc\u06a9 \u0644\u06cc\u0646 \u062f\u06cc\u0646 \u0645\u06cc\u06ba \u0644\u067e\u06cc\u0679 \u06a9\u0631 \u0648\u0627\u067e\u0633 \u0631\u0648\u0644 \u06a9\u0631\u06cc\u06ba\u06d4<\/p>\n<pre><code class=\"language-sql\">BEGIN;\nEXPLAIN ANALYZE DELETE FROM customers WHERE city = 'Berlin';\nROLLBACK;\n<\/code><\/pre>\n<h2 id=\"heading-types-of-indexes-in-postgresql\">PostgreSQL \u0645\u06cc\u06ba \u0627\u0646\u0688\u06cc\u06a9\u0633 \u06a9\u06cc \u0627\u0642\u0633\u0627\u0645<\/h2>\n<p>PostgreSQL \u0645\u062e\u062a\u0644\u0641 \u0627\u0633\u062a\u0641\u0633\u0627\u0631 \u06a9\u06d2 \u0646\u0645\u0648\u0646\u0648\u06ba \u06a9\u06d2 \u0644\u06cc\u06d2 \u0645\u0648\u0632\u0648\u06ba \u06a9\u0626\u06cc \u0627\u0646\u0688\u06cc\u06a9\u0633 \u0627\u0642\u0633\u0627\u0645 \u06a9\u0648 \u0633\u067e\u0648\u0631\u0679 \u06a9\u0631\u062a\u0627 \u06c1\u06d2\u06d4<\/p>\n<h3 id=\"heading-b-tree-default\">\u0628\u06cc \u0679\u0631\u06cc (\u067e\u06c1\u0644\u06d2 \u0633\u06d2 \u0637\u06d2 \u0634\u062f\u06c1)<\/h3>\n<p>B-trees \u067e\u06c1\u0644\u06d2 \u0633\u06d2 \u0637\u06d2 \u0634\u062f\u06c1 \u0627\u0646\u0688\u06cc\u06a9\u0633 \u06a9\u06cc \u0642\u0633\u0645 \u06c1\u06cc\u06ba \u0627\u0648\u0631 \u0632\u06cc\u0627\u062f\u06c1 \u062a\u0631 \u0627\u0633\u062a\u0639\u0645\u0627\u0644 \u06a9\u06d2 \u0645\u0639\u0627\u0645\u0644\u0627\u062a \u06a9\u0627 \u0627\u062d\u0627\u0637\u06c1 \u06a9\u0631\u062a\u06cc \u06c1\u06cc\u06ba\u06d4 \u0645\u0633\u0627\u0648\u0627\u062a \u06a9\u06cc \u062c\u0627\u0646\u0686 \u06a9\u06cc \u062d\u0645\u0627\u06cc\u062a \u06a9\u0631\u062a\u0627 \u06c1\u06d2 (<code>=<\/code>) \u0631\u06cc\u0646\u062c \u06a9\u0627 \u0633\u0648\u0627\u0644 (<code><<\/code>, <code>><\/code>, <code><=<\/code>, <code>>=<\/code>, <code>BETWEEN<\/code>sort(<code>ORDER BY<\/code>)\u060c \u0627\u0648\u0631 <code>IS NULL<\/code> \/ <code>IS NOT NULL<\/code> \u0686\u06cc\u06a9\u0631<\/p>\n<pre><code class=\"language-sql\">-- These are equivalent \u2013 B-tree is the default\nCREATE INDEX idx_name ON customers (last_name);\nCREATE INDEX idx_name ON customers USING btree (last_name);\n<\/code><\/pre>\n<p>B-trees \u0627\u0633\u062a\u0639\u0645\u0627\u0644 \u06a9\u0631\u06cc\u06ba \u062c\u0628 \u06a9\u0648\u0626\u06cc \u0627\u0648\u0631 \u0686\u06cc\u0632 \u0627\u0633\u062a\u0639\u0645\u0627\u0644 \u06a9\u0631\u0646\u06d2 \u06a9\u06cc \u06a9\u0648\u0626\u06cc \u062e\u0627\u0635 \u0648\u062c\u06c1 \u0646\u06c1 \u06c1\u0648\u06d4<\/p>\n<h3 id=\"heading-hash\">\u0686\u0631\u0633<\/h3>\n<p>\u06c1\u06cc\u0634 \u0627\u0634\u0627\u0631\u06cc\u06c1 \u062c\u0627\u062a \u0635\u0631\u0641 \u0645\u0633\u0627\u0648\u0627\u062a \u06a9\u06d2 \u0645\u0648\u0627\u0632\u0646\u06c1 \u06a9\u06d2 \u0644\u06cc\u06d2 \u0645\u0648\u0632\u0648\u06ba \u06c1\u06cc\u06ba (<code>=<\/code>)\u06d4 \u0631\u06cc\u0646\u062c \u06a9\u06d2 \u0633\u0648\u0627\u0644\u0627\u062a \u06cc\u0627 \u0686\u06be\u0627\u0646\u0679\u0646\u06d2 \u06a9\u06cc \u062d\u0645\u0627\u06cc\u062a \u0646\u06c1\u06cc\u06ba \u06a9\u0631\u062a\u0627 \u06c1\u06d2\u06d4 \u062f\u0631\u062d\u0642\u06cc\u0642\u062a\u060c B-trees \u0645\u0633\u0627\u0648\u0627\u062a \u06a9\u06cc \u062c\u0627\u0646\u0686 \u06a9\u0648 \u0627\u062a\u0646\u06cc \u062a\u06cc\u0632\u06cc \u0633\u06d2 \u0633\u0646\u0628\u06be\u0627\u0644\u062a\u06d2 \u06c1\u06cc\u06ba \u06a9\u06c1 \u06c1\u06cc\u0634 \u0627\u0646\u0688\u06cc\u06a9\u0633 \u06a9\u06cc \u0636\u0631\u0648\u0631\u062a \u06a9\u0645 \u06c1\u06cc \u06c1\u0648\u062a\u06cc \u06c1\u06d2\u06d4<\/p>\n<pre><code class=\"language-sql\">CREATE INDEX idx_email_hash ON customers USING hash (email);\n<\/code><\/pre>\n<p>\u06c1\u06cc\u0634 \u0627\u0634\u0627\u0631\u06cc\u06c1 \u062c\u0627\u062a \u067e\u0631 \u0635\u0631\u0641 \u0627\u0633 \u0635\u0648\u0631\u062a \u0645\u06cc\u06ba \u063a\u0648\u0631 \u06a9\u0631\u06cc\u06ba \u062c\u0628 \u0622\u067e \u06a9\u06d2 \u067e\u0627\u0633 \u0627\u06cc\u06a9 \u0628\u06c1\u062a \u0628\u0691\u06cc \u0645\u06cc\u0632 \u06c1\u06d2 \u062c\u0633 \u0645\u06cc\u06ba \u0628\u0627\u0631 \u0628\u0627\u0631 \u0645\u0633\u0627\u0648\u0627\u062a \u0635\u0631\u0641 \u0646\u0638\u0631 \u0622\u062a\u06cc \u06c1\u06d2 \u0627\u0648\u0631 \u0622\u067e \u0627\u0646\u0688\u06cc\u06a9\u0633 \u06a9\u06cc \u06a9\u0686\u06be \u062c\u06af\u06c1 \u0628\u0686\u0627\u0646\u0627 \u0686\u0627\u06c1\u062a\u06d2 \u06c1\u06cc\u06ba\u06d4<\/p>\n<h3 id=\"heading-gin-generalized-inverted-index\">GIN (\u0639\u0645\u0648\u0645\u06cc \u0627\u0644\u0679\u0627 \u0627\u0646\u0688\u06cc\u06a9\u0633)<\/h3>\n<p>GIN \u0627\u0634\u0627\u0631\u06cc\u06c1 \u062c\u0627\u062a \u0627\u0646 \u0627\u0642\u062f\u0627\u0631 \u06a9\u06d2 \u0644\u06cc\u06d2 \u0688\u06cc\u0632\u0627\u0626\u0646 \u06a9\u06cc\u06d2 \u06af\u0626\u06d2 \u06c1\u06cc\u06ba \u062c\u0646 \u0645\u06cc\u06ba \u0627\u06cc\u06a9 \u0633\u06d2 \u0632\u06cc\u0627\u062f\u06c1 \u0639\u0646\u0627\u0635\u0631 \u06c1\u0648\u062a\u06d2 \u06c1\u06cc\u06ba\u060c \u062c\u06cc\u0633\u06d2 \u06a9\u06c1 arrays\u060c JSONB \u062f\u0633\u062a\u0627\u0648\u06cc\u0632\u0627\u062a\u060c \u06cc\u0627 \u0641\u0644 \u0679\u06cc\u06a9\u0633\u0679 \u0633\u0631\u0686 \u0648\u06cc\u06a9\u0679\u0631\u06d4 \u06c1\u0631 \u0642\u0637\u0627\u0631 \u0645\u06cc\u06ba \u0627\u06cc\u06a9 \u0648\u0627\u062d\u062f \u0642\u062f\u0631 \u06a9\u0648 \u0627\u0646\u0688\u06cc\u06a9\u0633 \u06a9\u0631\u0646\u06d2 \u06a9\u06d2 \u0628\u062c\u0627\u0626\u06d2\u060c GIN \u0627\u06cc\u06a9 \u0642\u062f\u0631 \u06a9\u06d2 \u0627\u0646\u062f\u0631 \u0645\u0648\u062c\u0648\u062f \u062a\u0645\u0627\u0645 \u0639\u0646\u0627\u0635\u0631 \u06a9\u0648 \u0627\u0646\u0688\u06cc\u06a9\u0633 \u06a9\u0631\u062a\u0627 \u06c1\u06d2\u06d4<\/p>\n<pre><code class=\"language-sql\">-- Add a JSONB column\nALTER TABLE customers ADD COLUMN preferences JSONB DEFAULT '{}';\n\n-- Index the JSONB column\nCREATE INDEX idx_preferences ON customers USING gin (preferences);\n\n-- Now this query uses the GIN index\nSELECT * FROM customers WHERE preferences @> '{\"newsletter\": true}';\n<\/code><\/pre>\n<p>JSONB \u0688\u06cc\u0679\u0627 \u06a9\u06d2 \u0627\u0646\u062f\u0631 \u0627\u0633\u062a\u0641\u0633\u0627\u0631 \u06a9\u0631\u062a\u06d2 \u0648\u0642\u062a GIN \u0627\u0633\u062a\u0639\u0645\u0627\u0644 \u06a9\u0631\u06cc\u06ba \u0627\u0648\u0631 \u06cc\u06c1 \u0627\u0633\u062a\u0639\u0645\u0627\u0644 \u06a9\u0631\u062a\u06d2 \u06c1\u0648\u0626\u06d2 \u0635\u0641\u0648\u06ba \u06a9\u0648 \u0628\u0627\u0632\u06cc\u0627\u0641\u062a \u06a9\u0631\u06cc\u06ba: <code>@><\/code> \u06cc\u0627 <code>&&<\/code>\u06cc\u0627 \u0627\u0633\u062a\u0639\u0645\u0627\u0644 \u06a9\u0631\u06a9\u06d2 \u0645\u06a9\u0645\u0644 \u0645\u062a\u0646 \u06a9\u06cc \u062a\u0644\u0627\u0634 \u06a9\u0631\u06cc\u06ba\u06d4 <code>tsvector<\/code>.<\/p>\n<h3 id=\"heading-gist-generalized-search-tree\">\u0639\u0627\u0645 \u062a\u0644\u0627\u0634 \u06a9\u0627 \u062f\u0631\u062e\u062a (GiST)<\/h3>\n<p>\u062c\u06cc \u0627\u06cc\u0633 \u0679\u06cc \u0627\u0646\u0688\u06cc\u06a9\u0633 \u06c1\u0646\u062f\u0633\u06cc \u0688\u06cc\u0679\u0627\u060c \u0631\u06cc\u0646\u062c\u060c \u0627\u0648\u0631 \u0645\u06a9\u0645\u0644 \u0645\u062a\u0646 \u06a9\u06cc \u062a\u0644\u0627\u0634 \u06a9\u0648 \u0633\u067e\u0648\u0631\u0679 \u06a9\u0631\u062a\u06d2 \u06c1\u06cc\u06ba\u06d4 \u06cc\u06c1 \u0639\u0627\u0645 \u0637\u0648\u0631 \u067e\u0631 \u062c\u063a\u0631\u0627\u0641\u06cc\u0627\u0626\u06cc \u0627\u0633\u062a\u0641\u0633\u0627\u0631\u0627\u062a \u06a9\u06d2 \u0644\u06cc\u06d2 PostGIS \u06a9\u06d2 \u0633\u0627\u062a\u06be \u0627\u0633\u062a\u0639\u0645\u0627\u0644 \u06c1\u0648\u062a\u0627 \u06c1\u06d2\u06d4<\/p>\n<pre><code class=\"language-sql\">-- Range type example\nCREATE TABLE events (\n    id SERIAL PRIMARY KEY,\n    name VARCHAR(100),\n    duration TSRANGE\n);\n\nCREATE INDEX idx_event_duration ON events USING gist (duration);\n\n-- Find overlapping events\nSELECT * FROM events WHERE duration && '[2025-01-01, 2025-01-31]'::tsrange;\n<\/code><\/pre>\n<p>\u062c\u0628 \u0622\u067e \u0645\u0642\u0627\u0645\u06cc \u0688\u06cc\u0679\u0627\u060c \u0631\u06cc\u0646\u062c \u06a9\u06cc \u0627\u0642\u0633\u0627\u0645 \u06a9\u06d2 \u0633\u0627\u062a\u06be \u06a9\u0627\u0645 \u06a9\u0631\u062a\u06d2 \u06c1\u06cc\u06ba\u060c \u06cc\u0627 \u0622\u067e\u0631\u06cc\u0679\u0631\u0632 \u067e\u0631 \u0645\u0634\u062a\u0645\u0644 \u06af\u06be\u0648\u0646\u0633\u0644\u06d2 \u06a9\u06cc \u0636\u0631\u0648\u0631\u062a \u06c1\u0648 \u062a\u0648 GiST \u0627\u0633\u062a\u0639\u0645\u0627\u0644 \u06a9\u0631\u06cc\u06ba\u06d4<\/p>\n<h3 id=\"heading-brin-block-range-index\">BRIN (\u0628\u0644\u0627\u06a9 \u0631\u06cc\u0646\u062c \u0627\u0646\u0688\u06cc\u06a9\u0633)<\/h3>\n<p>BRIN \u0627\u0634\u0627\u0631\u06cc\u06c1 \u062c\u0627\u062a \u0628\u06c1\u062a \u0686\u06be\u0648\u0679\u06d2 \u06c1\u0648\u062a\u06d2 \u06c1\u06cc\u06ba \u0627\u0648\u0631 \u0628\u0691\u06cc \u0645\u06cc\u0632\u0648\u06ba \u067e\u0631 \u0627\u0686\u06be\u06cc \u0637\u0631\u062d \u06a9\u0627\u0645 \u06a9\u0631\u062a\u06d2 \u06c1\u06cc\u06ba \u062c\u06c1\u0627\u06ba \u0641\u0632\u06cc\u06a9\u0644 \u0642\u0637\u0627\u0631 \u062a\u0631\u062a\u06cc\u0628 \u06a9\u0648 \u0627\u0646\u0688\u06cc\u06a9\u0633 \u0634\u062f\u06c1 \u06a9\u0627\u0644\u0645\u0648\u06ba \u06a9\u06cc \u0642\u062f\u0631\u0648\u06ba \u06a9\u06d2 \u0633\u0627\u062a\u06be \u062c\u0648\u0691\u0627 \u062c\u0627\u062a\u0627 \u06c1\u06d2\u06d4 \u0627\u06cc\u06a9 \u0639\u0627\u0645 \u0645\u062b\u0627\u0644 \u0635\u0631\u0641 \u0636\u0645\u06cc\u0645\u06c1 \u0679\u06cc\u0628\u0644 \u0645\u06cc\u06ba \u0679\u0627\u0626\u0645 \u0627\u0633\u0679\u06cc\u0645\u067e \u06a9\u0627\u0644\u0645 \u06c1\u06d2 \u062c\u06c1\u0627\u06ba \u0646\u0626\u06cc \u200b\u200b\u0642\u0637\u0627\u0631\u0648\u06ba \u0645\u06cc\u06ba \u06c1\u0645\u06cc\u0634\u06c1 \u0628\u0639\u062f \u06a9\u0627 \u0679\u0627\u0626\u0645 \u0627\u0633\u0679\u06cc\u0645\u067e \u06c1\u0648\u062a\u0627 \u06c1\u06d2\u06d4<\/p>\n<pre><code class=\"language-sql\">CREATE INDEX idx_created_at_brin ON customers USING brin (created_at);\n<\/code><\/pre>\n<p>\u06c1\u0631 \u0642\u0637\u0627\u0631 \u06a9\u0648 \u0627\u0646\u0641\u0631\u0627\u062f\u06cc \u0637\u0648\u0631 \u067e\u0631 \u0627\u0646\u0688\u06cc\u06a9\u0633 \u06a9\u0631\u0646\u06d2 \u06a9\u06d2 \u0628\u062c\u0627\u0626\u06d2\u060c BRIN \u0642\u0637\u0627\u0631\u0648\u06ba \u06a9\u06d2 \u06c1\u0631 \u0628\u0644\u0627\u06a9 \u06a9\u06d2 \u0644\u06cc\u06d2 \u062e\u0644\u0627\u0635\u06c1 \u0645\u0639\u0644\u0648\u0645\u0627\u062a (\u06a9\u0645 \u0633\u06d2 \u06a9\u0645\/\u0632\u06cc\u0627\u062f\u06c1 \u0633\u06d2 \u0632\u06cc\u0627\u062f\u06c1 \u0627\u0642\u062f\u0627\u0631) \u0627\u0633\u0679\u0648\u0631 \u06a9\u0631\u062a\u0627 \u06c1\u06d2\u06d4 \u06cc\u06c1 \u0627\u0646\u0688\u06cc\u06a9\u0633 \u06a9\u0648 \u0628\u06cc \u0679\u0631\u06cc \u0633\u06d2 \u0628\u06c1\u062a \u0686\u06be\u0648\u0679\u0627 \u0628\u0646\u0627\u062a\u0627 \u06c1\u06d2\u060c \u0644\u06cc\u06a9\u0646 \u0635\u0631\u0641 \u0627\u0633 \u0635\u0648\u0631\u062a \u0645\u06cc\u06ba \u0628\u06c1\u062a\u0631 \u06a9\u0627\u0645 \u06a9\u0631\u062a\u0627 \u06c1\u06d2 \u062c\u0628 \u0688\u06cc\u0679\u0627 \u06a9\u0648 \u0642\u062f\u0631\u062a\u06cc \u0637\u0648\u0631 \u067e\u0631 \u062a\u0631\u062a\u06cc\u0628 \u062f\u06cc\u0627 \u06af\u06cc\u0627 \u06c1\u0648\u06d4<\/p>\n<p>BRIN \u06a9\u0627 \u0627\u0633\u062a\u0639\u0645\u0627\u0644 \u0628\u06c1\u062a \u0628\u0691\u06cc \u0635\u0631\u0641 \u0627\u067e\u0646\u0688 \u0679\u06cc\u0628\u0644\u0632 \u06a9\u06d2 \u0644\u06cc\u06d2 \u06a9\u0631\u06cc\u06ba \u062c\u0646 \u0645\u06cc\u06ba \u0642\u062f\u0631\u062a\u06cc \u0637\u0648\u0631 \u067e\u0631 \u062a\u0631\u062a\u06cc\u0628 \u062f\u06cc\u0627 \u06af\u06cc\u0627 \u0688\u06cc\u0679\u0627 \u06c1\u0648\u062a\u0627 \u06c1\u06d2\u060c \u062c\u06cc\u0633\u06d2 \u0644\u0627\u06af\u0632\u060c \u0627\u06cc\u0648\u0646\u0679\u0633\u060c \u06cc\u0627 \u0679\u0627\u0626\u0645 \u0633\u06cc\u0631\u06cc\u0632 \u0688\u06cc\u0679\u0627\u06d4<\/p>\n<h2 id=\"heading-how-to-create-a-composite-index\">\u0627\u06cc\u06a9 \u062c\u0627\u0645\u0639 \u0627\u0646\u0688\u06cc\u06a9\u0633 \u06a9\u06cc\u0633\u06d2 \u0628\u0646\u0627\u06cc\u0627 \u062c\u0627\u0626\u06d2\u06d4<\/h2>\n<p>\u0627\u06cc\u06a9 \u06a9\u0645\u067e\u0648\u0632\u0679 \u0627\u0646\u0688\u06cc\u06a9\u0633 (\u062c\u0633\u06d2 \u0645\u0644\u0679\u06cc \u06a9\u0627\u0644\u0645 \u0627\u0646\u0688\u06cc\u06a9\u0633 \u0628\u06be\u06cc \u06a9\u06c1\u0627 \u062c\u0627\u062a\u0627 \u06c1\u06d2) \u0645\u06cc\u06ba \u0627\u06cc\u06a9 \u0633\u06d2 \u0632\u06cc\u0627\u062f\u06c1 \u06a9\u0627\u0644\u0645 \u06c1\u0648\u062a\u06d2 \u06c1\u06cc\u06ba\u06d4 \u06cc\u06c1 \u0645\u0641\u06cc\u062f \u06c1\u06d2 \u0627\u06af\u0631 \u0622\u067e \u06a9\u06d2 \u0633\u0648\u0627\u0644\u0627\u062a \u06a9\u062b\u0631\u062a \u0633\u06d2 \u0641\u0644\u0679\u0631 \u06a9\u0631\u06cc\u06ba \u06cc\u0627 \u0627\u06cc\u06a9 \u0633\u0627\u062a\u06be \u0645\u062a\u0639\u062f\u062f \u06a9\u0627\u0644\u0645\u0648\u06ba \u06a9\u0648 \u062a\u0631\u062a\u06cc\u0628 \u062f\u06cc\u06ba\u06d4<\/p>\n<pre><code class=\"language-sql\">CREATE INDEX idx_city_lastname ON customers (city, last_name);\n<\/code><\/pre>\n<p>\u0627\u06cc\u06a9 \u062c\u0627\u0645\u0639 \u0627\u0634\u0627\u0631\u06cc\u06c1 \u0645\u06cc\u06ba \u06a9\u0627\u0644\u0645\u0648\u06ba \u06a9\u06cc \u062a\u0631\u062a\u06cc\u0628 \u0627\u06c1\u0645 \u06c1\u06d2\u06d4 PostgreSQL \u0627\u0633 \u0627\u0646\u0688\u06cc\u06a9\u0633 \u06a9\u0648 \u0627\u0646 \u0633\u0648\u0627\u0644\u0627\u062a \u0645\u06cc\u06ba \u0627\u0633\u062a\u0639\u0645\u0627\u0644 \u06a9\u0631 \u0633\u06a9\u062a\u0627 \u06c1\u06d2 \u062c\u0648 \u0641\u0644\u0679\u0631 \u06a9\u0631\u062a\u06d2 \u06c1\u06cc\u06ba: <code>city<\/code> \u062a\u0646\u06c1\u0627 \u06cc\u0627 \u062f\u0648\u0646\u0648\u06ba <code>city<\/code> \u0627\u0648\u0631 <code>last_name<\/code>. \u0644\u06cc\u06a9\u0646 \u06cc\u06c1 \u06c1\u06d2 <strong>\u0646\u06c1\u06cc\u06ba \u06a9\u0631 \u0633\u06a9\u062a\u06d2<\/strong> \u0633\u0648\u0627\u0644\u0627\u062a \u06a9\u0648 \u0641\u0644\u0679\u0631 \u06a9\u0631\u0646\u06d2 \u06a9\u06d2 \u0644\u06cc\u06d2 \u0627\u0633 \u0627\u0646\u0688\u06cc\u06a9\u0633 \u06a9\u0648 \u0645\u0624\u062b\u0631 \u0637\u0631\u06cc\u0642\u06d2 \u0633\u06d2 \u0627\u0633\u062a\u0639\u0645\u0627\u0644 \u06a9\u0631\u06cc\u06ba\u06d4 <code>last_name<\/code>.<\/p>\n<p>\u0627\u0633\u06d2 \u0627\u06cc\u06a9 \u0641\u0648\u0646 \u0628\u06a9 \u06a9\u06cc \u0637\u0631\u062d \u0633\u0648\u0686\u06cc\u06ba\u060c \u067e\u06c1\u0644\u06d2 \u0634\u06c1\u0631 \u06a9\u06d2 \u0644\u062d\u0627\u0638 \u0633\u06d2 \u0627\u0648\u0631 \u067e\u06be\u0631 \u06c1\u0631 \u0634\u06c1\u0631 \u0645\u06cc\u06ba \u0635\u0646\u0641 \u06a9\u06d2 \u0644\u062d\u0627\u0638 \u0633\u06d2 \u062a\u0631\u062a\u06cc\u0628 \u062f\u06cc\u0627 \u06af\u06cc\u0627 \u06c1\u06d2\u06d4 \u0622\u067e \u0644\u0627\u06af\u0648\u0633 \u0645\u06cc\u06ba \u06a9\u0633\u06cc \u06a9\u0648 \u0628\u06be\u06cc \u0622\u0633\u0627\u0646\u06cc \u0633\u06d2 \u062a\u0644\u0627\u0634 \u06a9\u0631 \u0633\u06a9\u062a\u06d2 \u06c1\u06cc\u06ba\u06d4 \u0622\u067e \u0644\u0627\u06af\u0648\u0633 \u0645\u06cc\u06ba \"Adeyemi\" \u0646\u0627\u0645 \u06a9\u06d2 \u0633\u0627\u062a\u06be \u06c1\u0631 \u06a9\u0633\u06cc \u06a9\u0648 \u0628\u06be\u06cc \u062a\u0644\u0627\u0634 \u06a9\u0631 \u0633\u06a9\u062a\u06d2 \u06c1\u06cc\u06ba\u06d4 \u0644\u06cc\u06a9\u0646 \u06c1\u0631 \u0634\u06c1\u0631 \u0645\u06cc\u06ba \"Adeyemi\" \u0646\u0627\u0645\u06cc \u06c1\u0631 \u0634\u062e\u0635 \u06a9\u0648 \u062a\u0644\u0627\u0634 \u06a9\u0631\u0646\u06d2 \u06a9\u06d2 \u0644\u06cc\u06d2\u060c \u0622\u067e \u06a9\u0648 \u067e\u0648\u0631\u06cc \u06a9\u062a\u0627\u0628 \u06a9\u0648 \u0627\u0633\u06a9\u06cc\u0646 \u06a9\u0631\u0646\u0627 \u067e\u0691\u06d2 \u06af\u0627\u06d4<\/p>\n<p>\u0627\u0633 \u0627\u0635\u0648\u0644 \u06a9\u0648 \u06a9\u06c1\u062a\u06d2 \u06c1\u06cc\u06ba\u06d4 <strong>\u0633\u0628 \u0633\u06d2 \u0628\u0627\u06cc\u0627\u06ba \u0633\u0627\u0628\u0642\u06c1 \u200b\u200b\u0627\u0635\u0648\u0644<\/strong>: PostgreSQL \u0627\u0646 \u0633\u0648\u0627\u0644\u0627\u062a \u06a9\u06d2 \u0644\u06cc\u06d2 \u062c\u0627\u0645\u0639 \u0627\u0634\u0627\u0631\u06cc\u06c1 \u062c\u0627\u062a \u06a9\u0627 \u0627\u0633\u062a\u0639\u0645\u0627\u0644 \u06a9\u0631 \u0633\u06a9\u062a\u0627 \u06c1\u06d2 \u062c\u0646 \u0645\u06cc\u06ba \u0627\u0646\u0688\u06cc\u06a9\u0633 \u06a9\u0627 \u0633\u0628 \u0633\u06d2 \u0628\u0627\u0626\u06cc\u06ba \u06a9\u0627\u0644\u0645 \u0634\u0627\u0645\u0644 \u06c1\u0648\u062a\u0627 \u06c1\u06d2\u060c \u0644\u06cc\u06a9\u0646 \u0627\u0646 \u0633\u0648\u0627\u0644\u0627\u062a \u06a9\u06d2 \u0644\u06cc\u06d2 \u0646\u06c1\u06cc\u06ba \u062c\u0648 \u0627\u0633\u06d2 \u0686\u06be\u0648\u0691 \u062f\u06cc\u062a\u06d2 \u06c1\u06cc\u06ba\u06d4<\/p>\n<pre><code class=\"language-sql\">-- &#x2705; Uses the index (matches leftmost column)\nSELECT * FROM customers WHERE city = 'Lagos';\n\n-- &#x2705; Uses the index (matches both columns, left to right)\nSELECT * FROM customers WHERE city = 'Lagos' AND last_name=\"Adeyemi\";\n\n-- &#x274c; Cannot use this index efficiently (skips the leftmost column)\nSELECT * FROM customers WHERE last_name=\"Adeyemi\";\n<\/code><\/pre>\n<p>\u0627\u067e\u0646\u06d2 \u06a9\u0627\u0644\u0645 \u06a9\u06cc \u062a\u0631\u062a\u06cc\u0628 \u06a9\u0627 \u062a\u0639\u06cc\u0646 \u06a9\u0631\u062a\u06d2 \u0648\u0642\u062a\u060c \u0633\u0628 \u0633\u06d2 \u0632\u06cc\u0627\u062f\u06c1 \u0645\u0646\u062a\u062e\u0628 \u06a9\u0627\u0644\u0645 \u067e\u06c1\u0644\u06d2 \u0631\u06a9\u06be\u06cc\u06ba\u060c \u06cc\u0639\u0646\u06cc \u0648\u06c1 \u062c\u0648 \u0622\u067e \u06a9\u06d2 \u0646\u062a\u0627\u0626\u062c \u06a9\u0648 \u0633\u0628 \u0633\u06d2 \u0632\u06cc\u0627\u062f\u06c1 \u062a\u0646\u06af \u06a9\u0631\u062a\u06d2 \u06c1\u06cc\u06ba\u06d4<\/p>\n<h2 id=\"heading-how-to-create-a-partial-index\">\u062c\u0632\u0648\u06cc \u0627\u0646\u0688\u06cc\u06a9\u0633 \u06a9\u06cc\u0633\u06d2 \u0628\u0646\u0627\u06cc\u0627 \u062c\u0627\u0626\u06d2\u06d4<\/h2>\n<p>\u0627\u06cc\u06a9 \u062c\u0632\u0648\u06cc \u0627\u0646\u0688\u06cc\u06a9\u0633 \u0679\u06cc\u0628\u0644 \u0645\u06cc\u06ba \u0642\u0637\u0627\u0631\u0648\u06ba \u06a9\u0627 \u0635\u0631\u0641 \u0630\u06cc\u0644\u06cc \u0633\u06cc\u0679 \u067e\u0631 \u0645\u0634\u062a\u0645\u0644 \u06c1\u0648\u062a\u0627 \u06c1\u06d2\u06d4 \u0622\u067e \u0627\u067e\u0646\u06cc \u0627\u0646\u0688\u06cc\u06a9\u0633 \u06a9\u06cc \u062a\u0639\u0631\u06cc\u0641 \u0645\u06cc\u06ba WHERE \u0634\u0642 \u06a9\u0627 \u0627\u0633\u062a\u0639\u0645\u0627\u0644 \u06a9\u0631\u06a9\u06d2 \u0630\u06cc\u0644\u06cc \u0633\u06cc\u0679\u0648\u06ba \u06a9\u06cc \u0648\u0636\u0627\u062d\u062a \u06a9\u0631\u062a\u06d2 \u06c1\u06cc\u06ba\u06d4<\/p>\n<p>\u0688\u06cc\u0679\u0627 \u06a9\u06d2 \u0635\u0631\u0641 \u0645\u062e\u0635\u0648\u0635 \u062d\u0635\u0648\u06ba \u0633\u06d2 \u0627\u0633\u062a\u0641\u0633\u0627\u0631 \u06a9\u0631\u062a\u06d2 \u0648\u0642\u062a \u06cc\u06c1 \u0645\u0641\u06cc\u062f \u06c1\u06d2\u06d4 \u0645\u062b\u0627\u0644 \u06a9\u06d2 \u0637\u0648\u0631 \u067e\u0631\u060c <code>orders<\/code> \u0622\u067e \u0627\u06a9\u062b\u0631 \u0632\u06cc\u0631 \u0627\u0644\u062a\u0648\u0627\u0621 \u0622\u0631\u0688\u0631\u0632 \u06a9\u06d2 \u0644\u06cc\u06d2 \u0627\u067e\u0646\u06d2 \u0679\u06cc\u0628\u0644 \u0633\u06d2 \u0627\u0633\u062a\u0641\u0633\u0627\u0631 \u06a9\u0631\u062a\u06d2 \u06c1\u06cc\u06ba\u060c \u0644\u06cc\u06a9\u0646 \u0645\u06a9\u0645\u0644 \u0634\u062f\u06c1 \u0622\u0631\u0688\u0631\u0632 \u0634\u0627\u0630 \u0648 \u0646\u0627\u062f\u0631 \u06c1\u06cc \u062f\u06cc\u06a9\u06be\u062a\u06d2 \u06c1\u06cc\u06ba\u06d4<\/p>\n<pre><code class=\"language-sql\">CREATE TABLE orders (\n    id SERIAL PRIMARY KEY,\n    customer_id INT NOT NULL,\n    status VARCHAR(20) NOT NULL DEFAULT 'pending',\n    total NUMERIC(10, 2),\n    created_at TIMESTAMP DEFAULT NOW()\n);\n\n-- Only index rows where status is 'pending'\nCREATE INDEX idx_orders_pending ON orders (customer_id)\nWHERE status=\"pending\";\n<\/code><\/pre>\n<p>\u06cc\u06c1 \u0627\u0646\u0688\u06cc\u06a9\u0633 \u0645\u06a9\u0645\u0644 \u0627\u0646\u0688\u06cc\u06a9\u0633 \u0633\u06d2 \u0686\u06be\u0648\u0679\u0627 \u06c1\u06d2 \u06a9\u06cc\u0648\u0646\u06a9\u06c1 \u06cc\u06c1 \u0627\u0646 \u062a\u0645\u0627\u0645 \u0642\u0637\u0627\u0631\u0648\u06ba \u06a9\u0648 \u0686\u06be\u0648\u0691 \u062f\u06cc\u062a\u0627 \u06c1\u06d2 \u062c\u0648 WHERE \u062d\u0627\u0644\u062a \u0633\u06d2 \u0645\u0645\u0627\u062b\u0644 \u0646\u06c1\u06cc\u06ba \u06c1\u06cc\u06ba\u06d4 \u0686\u06be\u0648\u0679\u06d2 \u0627\u0634\u0627\u0631\u06cc\u06c1 \u062c\u0627\u062a \u06a9\u0645 \u0688\u0633\u06a9 \u06a9\u06cc \u062c\u06af\u06c1 \u0627\u0648\u0631 \u0645\u06cc\u0645\u0648\u0631\u06cc \u0627\u0633\u062a\u0639\u0645\u0627\u0644 \u06a9\u0631\u062a\u06d2 \u06c1\u06cc\u06ba\u060c \u0627\u0648\u0631 \u0644\u06a9\u06be\u0646\u06d2 \u06a9\u06d2 \u062f\u0648\u0631\u0627\u0646 \u0628\u0631\u0642\u0631\u0627\u0631 \u0631\u06a9\u06be\u0646\u06d2 \u06a9\u06d2 \u0644\u06cc\u06d2 \u062a\u06cc\u0632 \u062a\u0631 \u06c1\u0648\u062a\u06d2 \u06c1\u06cc\u06ba\u06d4<\/p>\n<p>\u0627\u06cc\u06a9 \u0627\u0634\u0627\u0631\u06cc\u06c1 \u0627\u0633\u062a\u0639\u0645\u0627\u0644 \u06a9\u0631\u0646\u06d2 \u06a9\u06d2 \u0644\u06cc\u06d2\u060c \u0627\u0633\u062a\u0641\u0633\u0627\u0631 \u06a9\u06cc WHERE \u0634\u0642 \u06a9\u0627 \u0627\u0634\u0627\u0631\u06cc\u06c1 \u06a9\u06d2 \u062d\u0627\u0644\u0627\u062a \u0633\u06d2 \u0645\u0645\u0627\u062b\u0644 \u06c1\u0648\u0646\u0627 \u0686\u0627\u06c1\u06cc\u06d2\u06d4<\/p>\n<pre><code class=\"language-sql\">-- &#x2705; Uses the partial index\nSELECT * FROM orders WHERE status=\"pending\" AND customer_id = 42;\n\n-- &#x274c; Cannot use the partial index (different status)\nSELECT * FROM orders WHERE status=\"shipped\" AND customer_id = 42;\n<\/code><\/pre>\n<h2 id=\"heading-how-to-create-an-expression-index\">\u0627\u06cc\u06a9\u0633\u067e\u0631\u06cc\u0634\u0646 \u0627\u0646\u0688\u06cc\u06a9\u0633 \u06a9\u06cc\u0633\u06d2 \u0628\u0646\u0627\u06cc\u0627 \u062c\u0627\u0626\u06d2\u06d4<\/h2>\n<p>\u0628\u0639\u0636 \u0635\u0648\u0631\u062a\u0648\u06ba \u0645\u06cc\u06ba\u060c \u0622\u067e \u06a9\u0648 \u062e\u0627\u0645 \u06a9\u0627\u0644\u0645 \u06a9\u06cc \u0642\u062f\u0631\u0648\u06ba \u06a9\u06d2 \u0628\u062c\u0627\u0626\u06d2 \u06a9\u0633\u06cc \u0641\u0646\u06a9\u0634\u0646 \u06cc\u0627 \u0627\u0638\u06c1\u0627\u0631 \u06a9\u0627 \u0646\u062a\u06cc\u062c\u06c1 \u0627\u0646\u0688\u06cc\u06a9\u0633 \u06a9\u0631\u0646\u06d2 \u06a9\u06cc \u0636\u0631\u0648\u0631\u062a \u067e\u0691 \u0633\u06a9\u062a\u06cc \u06c1\u06d2\u06d4 \u0627\u06cc\u06a9\u0633\u067e\u0631\u06cc\u0634\u0646 \u0627\u0646\u0688\u06cc\u06a9\u0633 (\u062c\u0633\u06d2 \u0641\u0646\u06a9\u0634\u0646 \u0627\u0646\u0688\u06cc\u06a9\u0633 \u0628\u06be\u06cc \u06a9\u06c1\u0627 \u062c\u0627\u062a\u0627 \u06c1\u06d2) \u0627\u0633\u06d2 \u0633\u0646\u0628\u06be\u0627\u0644\u062a\u06d2 \u06c1\u06cc\u06ba\u06d4<\/p>\n<p>\u0627\u06cc\u06a9 \u0639\u0627\u0645 \u0645\u0646\u0638\u0631 \u0646\u0627\u0645\u06c1 \u06a9\u06cc\u0633 \u063a\u06cc\u0631 \u062d\u0633\u0627\u0633 \u0627\u06cc \u0645\u06cc\u0644 \u0633\u0648\u0627\u0644\u0627\u062a \u06c1\u06d2\u06d4 \u0627\u06af\u0631 \u0622\u067e \u06a9\u0627 \u0627\u0633\u062a\u0641\u0633\u0627\u0631 \u0627\u0633\u062a\u0639\u0645\u0627\u0644 \u06a9\u0631\u062a\u0627 \u06c1\u06d2: <code>LOWER(email)<\/code>\u062c\u0646\u0631\u0644 \u0627\u0646\u0688\u06cc\u06a9\u0633 <code>email<\/code> \u0645\u062f\u062f\u06af\u0627\u0631 \u0646\u06c1\u06cc\u06ba \u2014 PostgreSQL \u0641\u0646\u06a9\u0634\u0646 \u06a9\u0627\u0644\u0632 \u06a9\u0648 \u062f\u0648\u0633\u0631\u06d2 \u0627\u0638\u06c1\u0627\u0631 \u06a9\u06cc \u0637\u0631\u062d \u0633\u0645\u062c\u06be\u062a\u0627 \u06c1\u06d2\u06d4<\/p>\n<pre><code class=\"language-sql\">-- Regular index on email \u2013 won't help with LOWER() queries\nCREATE INDEX idx_email ON customers (email);\n\n-- This query does NOT use the index above\nSELECT * FROM customers WHERE LOWER(email) = 'user100@example.com';\n<\/code><\/pre>\n<p>\u0627\u0633\u06d2 \u0679\u06be\u06cc\u06a9 \u06a9\u0631\u0646\u06d2 \u06a9\u06d2 \u0644\u06cc\u06d2\u060c \u0627\u0638\u06c1\u0627\u0631 \u067e\u0631 \u06c1\u06cc \u0627\u06cc\u06a9 \u0627\u0646\u0688\u06cc\u06a9\u0633 \u0628\u0646\u0627\u0626\u06cc\u06ba\u06d4<\/p>\n<pre><code class=\"language-sql\">CREATE INDEX idx_email_lower ON customers (LOWER(email));\n<\/code><\/pre>\n<p>\u0627\u0628 \u0627\u0633\u062a\u0639\u0645\u0627\u0644 \u06a9\u0631\u062a\u06d2 \u06c1\u0648\u0626\u06d2 \u0627\u06cc\u06a9 \u0633\u0648\u0627\u0644: <code>LOWER(email)<\/code> WHERE \u0634\u0642 \u0645\u06cc\u06ba \u062f\u0631\u062c \u0630\u06cc\u0644 \u0627\u0646\u0688\u06cc\u06a9\u0633 \u06a9\u0627 \u0627\u0633\u062a\u0639\u0645\u0627\u0644 \u06a9\u0631\u06cc\u06ba:<\/p>\n<pre><code class=\"language-sql\">-- &#x2705; Uses the expression index\nSELECT * FROM customers WHERE LOWER(email) = 'user100@example.com';\n<\/code><\/pre>\n<p>\u0627\u0635\u0648\u0644 \u0633\u0627\u062f\u06c1 \u06c1\u06cc\u06ba\u06d4 \u0627\u0633\u062a\u0641\u0633\u0627\u0631 \u06a9\u0627 \u0627\u0638\u06c1\u0627\u0631 \u0627\u0646\u0688\u06cc\u06a9\u0633 \u0645\u06cc\u06ba \u0645\u0648\u062c\u0648\u062f \u0627\u0638\u06c1\u0627\u0631 \u0633\u06d2 \u0628\u0627\u0644\u06a9\u0644 \u0645\u0645\u0627\u062b\u0644 \u06c1\u0648\u0646\u0627 \u0686\u0627\u06c1\u06cc\u06d2\u06d4 \u062c\u0628 \u0627\u0646\u0688\u06cc\u06a9\u0633\u0646\u06af \u0622\u0646 \u06c1\u0648\u062a\u06cc \u06c1\u06d2\u06d4 <code>LOWER(email)<\/code>\u0627\u0633\u06d2 \u0627\u0633\u062a\u0641\u0633\u0627\u0631\u0627\u062a \u0645\u06cc\u06ba \u0628\u06be\u06cc \u0627\u0633\u062a\u0639\u0645\u0627\u0644 \u06a9\u06cc\u0627 \u062c\u0627\u0646\u0627 \u0686\u0627\u06c1\u06cc\u06d2\u06d4 <code>LOWER(email)<\/code>.<\/p>\n<h2 id=\"heading-how-to-create-a-unique-index\">\u0627\u06cc\u06a9 \u0645\u0646\u0641\u0631\u062f \u0627\u0646\u0688\u06cc\u06a9\u0633 \u06a9\u06cc\u0633\u06d2 \u0628\u0646\u0627\u06cc\u0627 \u062c\u0627\u0626\u06d2\u06d4<\/h2>\n<p>\u0627\u06cc\u06a9 \u0645\u0646\u0641\u0631\u062f \u0627\u0646\u0688\u06cc\u06a9\u0633 \u0627\u0633 \u0628\u0627\u062a \u06a9\u0648 \u06cc\u0642\u06cc\u0646\u06cc \u0628\u0646\u0627\u062a\u0627 \u06c1\u06d2 \u06a9\u06c1 \u0627\u0646\u0688\u06cc\u06a9\u0633 \u0634\u062f\u06c1 \u06a9\u0627\u0644\u0645 \u067e\u0631 \u06a9\u0648\u0626\u06cc \u0628\u06be\u06cc \u062f\u0648 \u0642\u0637\u0627\u0631\u06cc\u06ba \u0627\u06cc\u06a9 \u062c\u06cc\u0633\u06cc \u0642\u062f\u0631 (\u06cc\u0627 \u0627\u0642\u062f\u0627\u0631 \u06a9\u0627 \u0645\u062c\u0645\u0648\u0639\u06c1) \u0646\u06c1\u06cc\u06ba \u0631\u06a9\u06be\u062a\u06cc \u06c1\u06cc\u06ba\u06d4 \u06cc\u06c1 \u062f\u0648 \u0645\u0642\u0627\u0635\u062f \u06a9\u0648 \u067e\u0648\u0631\u0627 \u06a9\u0631\u062a\u0627 \u06c1\u06d2: \u0627\u0633 \u06a9\u0627 \u0645\u0637\u0644\u0628 \u06c1\u06d2 \u0688\u06cc\u0679\u0627 \u06a9\u06cc \u0633\u0627\u0644\u0645\u06cc\u062a \u06a9\u0648 \u0628\u0691\u06be\u0627\u0646\u0627 \u0627\u0648\u0631 \u062a\u06cc\u0632\u06cc \u0633\u06d2 \u062a\u0644\u0627\u0634 \u06a9\u0631\u0646\u0627\u06d4<\/p>\n<pre><code class=\"language-sql\">CREATE UNIQUE INDEX idx_customers_email_unique ON customers (email);\n<\/code><\/pre>\n<p>\u0627\u06af\u0631 \u0622\u067e \u0688\u067e\u0644\u06cc\u06a9\u06cc\u0679 \u0648\u06cc\u0644\u06cc\u0648 \u062f\u0627\u062e\u0644 \u06a9\u0631\u0646\u06d2 \u06a9\u06cc \u06a9\u0648\u0634\u0634 \u06a9\u0631\u062a\u06d2 \u06c1\u06cc\u06ba\u060c \u062a\u0648 PostgreSQL \u0622\u067e\u0631\u06cc\u0634\u0646 \u0633\u06d2 \u0627\u0646\u06a9\u0627\u0631 \u06a9\u0631 \u062f\u06cc\u062a\u0627 \u06c1\u06d2\u06d4<\/p>\n<pre><code class=\"language-sql\">INSERT INTO customers (first_name, last_name, email, city)\nVALUES ('Test', 'User', 'user1@example.com', 'Lagos');\n-- ERROR: duplicate key value violates unique constraint \"idx_customers_email_unique\"\n<\/code><\/pre>\n<p>\u0622\u067e \u0633\u0648\u0686 \u0631\u06c1\u06d2 \u06c1\u0648\u06ba \u06af\u06d2 \u06a9\u06c1 \u06cc\u06c1 \u0627\u06cc\u06a9 \u0645\u0646\u0641\u0631\u062f \u0631\u06a9\u0627\u0648\u0679 \u0633\u06d2 \u06a9\u06cc\u0633\u06d2 \u0645\u062e\u062a\u0644\u0641 \u06c1\u06d2\u06d4 \u0627\u0646\u062f\u0631\u0648\u0646\u06cc \u0637\u0648\u0631 \u067e\u0631\u060c PostgreSQL \u0627\u06cc\u06a9 \u0645\u0646\u0641\u0631\u062f \u0627\u0646\u0688\u06cc\u06a9\u0633 \u0628\u0646\u0627 \u06a9\u0631 \u0645\u0646\u0641\u0631\u062f \u0631\u06a9\u0627\u0648\u0679 \u06a9\u0648 \u0646\u0627\u0641\u0630 \u06a9\u0631\u062a\u0627 \u06c1\u06d2\u06d4 \u062f\u0648\u0646\u0648\u06ba \u0639\u0645\u0644\u06cc \u0637\u0648\u0631 \u067e\u0631 \u0627\u06cc\u06a9 \u062c\u06cc\u0633\u06d2 \u06c1\u06cc\u06ba\u06d4<\/p>\n<p>\u0641\u0631\u0642 \u0646\u06cc\u062a \u06a9\u0627 \u06c1\u06d2\u06d4 \u0627\u0646\u0648\u06a9\u06be\u06cc \u0631\u06a9\u0627\u0648\u0679\u06cc\u06ba \u0688\u06cc\u0679\u0627 \u06a9\u06cc \u0633\u0627\u0644\u0645\u06cc\u062a \u06a9\u06d2 \u0627\u0635\u0648\u0644\u0648\u06ba \u06a9\u0627 \u0627\u0638\u06c1\u0627\u0631 \u06a9\u0631\u062a\u06cc \u06c1\u06cc\u06ba\u060c \u062c\u0628\u06a9\u06c1 \u0645\u0646\u0641\u0631\u062f \u0627\u0634\u0627\u0631\u06cc\u06c1 \u062c\u0627\u062a \u0648\u0627\u0636\u062d \u0637\u0648\u0631 \u067e\u0631 \u0627\u0633\u062a\u0641\u0633\u0627\u0631 \u06a9\u06cc \u06a9\u0627\u0631\u06a9\u0631\u062f\u06af\u06cc \u067e\u0631 \u062a\u0648\u062c\u06c1 \u0645\u0631\u06a9\u0648\u0632 \u06a9\u0631\u062a\u06d2 \u06c1\u06cc\u06ba\u060c \u0628\u0648\u0646\u0633 \u06a9\u06d2 \u0637\u0648\u0631 \u067e\u0631 \u0627\u0646\u0641\u0631\u0627\u062f\u06cc\u062a \u06a9\u06d2 \u0633\u0627\u062a\u06be\u06d4<\/p>\n<h2 id=\"heading-how-to-manage-indexes\">\u0627\u0634\u0627\u0631\u06cc\u06c1 \u062c\u0627\u062a \u06a9\u0627 \u0627\u0646\u062a\u0638\u0627\u0645 \u06a9\u06cc\u0633\u06d2 \u06a9\u0631\u06cc\u06ba\u06d4<\/h2>\n<p>\u062c\u06cc\u0633\u06d2 \u062c\u06cc\u0633\u06d2 \u0622\u067e \u06a9\u0627 \u0688\u06cc\u0679\u0627 \u0628\u06cc\u0633 \u0628\u0691\u06be\u062a\u0627 \u06c1\u06d2\u060c \u0622\u067e \u06a9\u0648 \u0627\u0634\u0627\u0631\u06cc\u06c1 \u062c\u0627\u062a \u06a9\u0627 \u0645\u0639\u0627\u0626\u0646\u06c1\u060c \u0646\u06af\u0631\u0627\u0646\u06cc \u0627\u0648\u0631 \u0628\u0631\u0642\u0631\u0627\u0631 \u0631\u06a9\u06be\u0646\u06d2 \u06a9\u06cc \u0636\u0631\u0648\u0631\u062a \u06c1\u0648\u062a\u06cc \u06c1\u06d2\u06d4<\/p>\n<h3 id=\"heading-how-to-list-all-indexes-on-a-table\">\u0645\u06cc\u0632 \u067e\u0631 \u062a\u0645\u0627\u0645 \u0627\u0634\u0627\u0631\u06cc\u06c1 \u062c\u0627\u062a \u06a9\u06cc \u0641\u06c1\u0631\u0633\u062a \u06a9\u06cc\u0633\u06d2 \u0628\u0646\u0627\u0626\u06cc\u06ba<\/h3>\n<pre><code class=\"language-sql\">SELECT\n    indexname,\n    indexdef\nFROM pg_indexes\nWHERE tablename=\"customers\";\n<\/code><\/pre>\n<p>\u06cc\u06c1 \u0645\u06cc\u0632 \u067e\u0631 \u062a\u0645\u0627\u0645 \u0627\u0634\u0627\u0631\u06cc\u06c1 \u062c\u0627\u062a \u06a9\u06d2 \u0646\u0627\u0645 \u0627\u0648\u0631 \u0645\u06a9\u0645\u0644 \u062a\u0639\u0631\u06cc\u0641\u06cc\u06ba \u062f\u06a9\u06be\u0627\u062a\u0627 \u06c1\u06d2\u06d4<\/p>\n<h3 id=\"heading-how-to-check-index-size\">\u0627\u0646\u0688\u06cc\u06a9\u0633 \u06a9\u0627 \u0633\u0627\u0626\u0632 \u06a9\u06cc\u0633\u06d2 \u0686\u06cc\u06a9 \u06a9\u0631\u06cc\u06ba\u06d4<\/h3>\n<pre><code class=\"language-sql\">SELECT\n    pg_size_pretty(pg_relation_size('idx_customers_email')) AS index_size;\n<\/code><\/pre>\n<p>\u062a\u0645\u0627\u0645 \u0627\u0634\u0627\u0631\u06cc\u06c1 \u062c\u0627\u062a \u0627\u0648\u0631 \u0627\u0646 \u06a9\u06d2 \u0633\u0627\u0626\u0632 \u06a9\u06d2 \u0648\u0633\u06cc\u0639 \u062a\u0631 \u0646\u0638\u0627\u0631\u06d2 \u06a9\u06d2 \u0644\u06cc\u06d2:<\/p>\n<pre><code class=\"language-sql\">SELECT\n    indexrelname AS index_name,\n    pg_size_pretty(pg_relation_size(indexrelid)) AS size\nFROM pg_stat_user_indexes\nWHERE relname=\"customers\"\nORDER BY pg_relation_size(indexrelid) DESC;\n<\/code><\/pre>\n<h3 id=\"heading-how-to-find-unused-indexes\">\u063a\u06cc\u0631 \u0627\u0633\u062a\u0639\u0645\u0627\u0644 \u0634\u062f\u06c1 \u0627\u0634\u0627\u0631\u06cc\u06c1 \u062c\u0627\u062a \u06a9\u0648 \u06a9\u06cc\u0633\u06d2 \u062a\u0644\u0627\u0634 \u06a9\u0631\u06cc\u06ba\u06d4<\/h3>\n<p>\u0627\u0634\u0627\u0631\u06cc\u06c1 \u062c\u0627\u062a \u062c\u0648 \u06a9\u0628\u06be\u06cc \u0627\u0633\u062a\u0639\u0645\u0627\u0644 \u0646\u06c1\u06cc\u06ba \u06c1\u0648\u062a\u06d2 \u06c1\u06cc\u06ba \u0688\u0633\u06a9 \u06a9\u06cc \u062c\u06af\u06c1 \u0636\u0627\u0626\u0639 \u06a9\u0631\u062a\u06d2 \u06c1\u06cc\u06ba \u0627\u0648\u0631 \u0644\u06a9\u06be\u062a\u06d2 \u06c1\u06cc\u06ba \u0633\u0633\u062a\u06d4 \u0622\u067e \u0627\u0633\u06d2 \u0686\u06cc\u06a9 \u06a9\u0631\u06a9\u06d2 \u062a\u0644\u0627\u0634 \u06a9\u0631\u0633\u06a9\u062a\u06d2 \u06c1\u06cc\u06ba\u06d4 <code>pg_stat_user_indexes<\/code>:<\/p>\n<pre><code class=\"language-sql\">SELECT\n    indexrelname AS index_name,\n    idx_scan AS times_used,\n    pg_size_pretty(pg_relation_size(indexrelid)) AS size\nFROM pg_stat_user_indexes\nWHERE relname=\"customers\"\nAND idx_scan = 0\nORDER BY pg_relation_size(indexrelid) DESC;\n<\/code><\/pre>\n<p>\u0627\u06af\u0631 \u06a9\u0648\u0626\u06cc \u0627\u0646\u0688\u06cc\u06a9\u0633 \u06c1\u06d2\u06d4 <code>idx_scan = 0<\/code> \u06cc\u06c1 \u0639\u0627\u0645 \u0627\u0633\u062a\u0639\u0645\u0627\u0644 \u06a9\u06cc \u0645\u062f\u062a \u06a9\u06d2 \u0628\u0639\u062f \u06c1\u0679\u0627\u0646\u06d2 \u06a9\u06d2 \u062a\u0627\u0628\u0639 \u06c1\u06d2. \u06a9\u0627\u0631\u0648\u0628\u0627\u0631 \u06a9\u0627 \u067e\u0648\u0631\u0627 \u062f\u0648\u0631 \u062f\u06cc\u06a9\u06be\u06cc\u06ba\u06d4 \u06a9\u0686\u06be \u0627\u0634\u0627\u0631\u06cc\u06d2 \u0635\u0631\u0641 \u0645\u0627\u06c1\u0627\u0646\u06c1 \u0631\u067e\u0648\u0631\u0679\u0648\u06ba \u0645\u06cc\u06ba \u06cc\u0627 \u0645\u0648\u0633\u0645\u06cc \u06a9\u0627\u0631\u0631\u0648\u0627\u0626\u06cc\u0648\u06ba \u06a9\u06d2 \u062f\u0648\u0631\u0627\u0646 \u0627\u0633\u062a\u0639\u0645\u0627\u0644 \u06c1\u0648\u062a\u06d2 \u06c1\u06cc\u06ba\u06d4<\/p>\n<h3 id=\"heading-how-to-drop-an-index\">\u0627\u0646\u0688\u06cc\u06a9\u0633 \u06a9\u0648 \u06a9\u06cc\u0633\u06d2 \u062d\u0630\u0641 \u06a9\u0631\u06cc\u06ba\u06d4<\/h3>\n<pre><code class=\"language-sql\">DROP INDEX IF EXISTS idx_customers_email;\n<\/code><\/pre>\n<p>\u067e\u0631\u0648\u0688\u06a9\u0634\u0646 \u0679\u06cc\u0628\u0644 \u067e\u0631 \u0627\u0646\u0688\u06cc\u06a9\u0633 \u0686\u06be\u0648\u0691\u0646\u06d2 \u0627\u0648\u0631 \u0631\u0627\u0626\u0679 \u0644\u0627\u06a9\u0646\u06af \u06a9\u0648 \u0631\u0648\u06a9\u0646\u06d2 \u06a9\u06d2 \u0644\u06cc\u06d2\u060c \u0627\u0633\u062a\u0639\u0645\u0627\u0644 \u06a9\u0631\u06cc\u06ba: <code>CONCURRENTLY<\/code>:<\/p>\n<pre><code class=\"language-sql\">DROP INDEX CONCURRENTLY IF EXISTS idx_customers_email;\n<\/code><\/pre>\n<h3 id=\"heading-how-to-rebuild-an-index\">\u0627\u0646\u0688\u06cc\u06a9\u0633 \u06a9\u0648 \u062f\u0648\u0628\u0627\u0631\u06c1 \u06a9\u06cc\u0633\u06d2 \u0628\u0646\u0627\u06cc\u0627 \u062c\u0627\u0626\u06d2\u06d4<\/h3>\n<p>\u0648\u0642\u062a \u06af\u0632\u0631\u0646\u06d2 \u06a9\u06d2 \u0633\u0627\u062a\u06be\u060c \u0627\u0634\u0627\u0631\u06cc\u06c1 \u062c\u0627\u062a \u067e\u06be\u0648\u0644\u06d2 \u06c1\u0648\u0626\u06d2 \u06c1\u0648 \u0633\u06a9\u062a\u06d2 \u06c1\u06cc\u06ba \u06a9\u06cc\u0648\u0646\u06a9\u06c1 \u0642\u0637\u0627\u0631\u06cc\u06ba \u0688\u0627\u0644\u06cc \u062c\u0627\u062a\u06cc \u06c1\u06cc\u06ba\u060c \u0627\u067e \u0688\u06cc\u0679 \u06c1\u0648\u062a\u06cc \u06c1\u06cc\u06ba \u0627\u0648\u0631 \u062d\u0630\u0641 \u06c1\u0648\u062a\u06cc \u06c1\u06cc\u06ba\u06d4 \u0622\u067e \u062c\u06af\u06c1 \u062f\u0648\u0628\u0627\u0631\u06c1 \u062d\u0627\u0635\u0644 \u06a9\u0631\u0646\u06d2 \u06a9\u06d2 \u0644\u06cc\u06d2 \u0627\u0646\u0688\u06cc\u06a9\u0633 \u06a9\u0648 \u062f\u0648\u0628\u0627\u0631\u06c1 \u0628\u0646\u0627 \u0633\u06a9\u062a\u06d2 \u06c1\u06cc\u06ba\u06d4<\/p>\n<pre><code class=\"language-sql\">REINDEX INDEX idx_customers_email;\n<\/code><\/pre>\n<p>\u06cc\u0627\u060c \u0645\u06cc\u0632 \u067e\u0631 \u062a\u0645\u0627\u0645 \u0627\u0634\u0627\u0631\u06cc\u06c1 \u062c\u0627\u062a \u06a9\u0648 \u062f\u0648\u0628\u0627\u0631\u06c1 \u0628\u0646\u0627\u0626\u06cc\u06ba\u06d4<\/p>\n<pre><code class=\"language-sql\">REINDEX TABLE customers;\n<\/code><\/pre>\n<p>\u067e\u06cc\u062f\u0627\u0648\u0627\u0631\u06cc \u0646\u0638\u0627\u0645 \u0645\u06cc\u06ba \u06c1\u0645 \u0627\u0633\u062a\u0639\u0645\u0627\u0644 \u06a9\u0631\u062a\u06d2 \u06c1\u06cc\u06ba: <code>REINDEX CONCURRENTLY<\/code> (PostgreSQL 12+) \u0679\u06cc\u0628\u0644 \u0644\u0627\u06a9\u0646\u06af \u06a9\u0648 \u0631\u0648\u06a9\u0646\u06d2 \u06a9\u06d2 \u0644\u06cc\u06d2:<\/p>\n<pre><code class=\"language-sql\">REINDEX INDEX CONCURRENTLY idx_customers_email;\n<\/code><\/pre>\n<h2 id=\"heading-when-indexes-hurt-instead-of-help\">\u062c\u0628 \u0627\u0634\u0627\u0631\u06cc\u06d2 \u0645\u062f\u062f\u06af\u0627\u0631 \u06c1\u0648\u0646\u06d2 \u06a9\u06d2 \u0628\u062c\u0627\u0626\u06d2 \u062e\u0631\u0627\u0628 \u06c1\u0648 \u062c\u0627\u062a\u06d2 \u06c1\u06cc\u06ba\u06d4<\/h2>\n<p>\u0627\u0634\u0627\u0631\u06cc\u06c1 \u062c\u0627\u062a \u0645\u0641\u062a \u0646\u06c1\u06cc\u06ba \u06c1\u06cc\u06ba\u06d4 \u06c1\u0631 \u0627\u0634\u0627\u0631\u06cc\u06c1 \u062c\u0648 \u0622\u067e \u0634\u0627\u0645\u0644 \u06a9\u0631\u062a\u06d2 \u06c1\u06cc\u06ba \u0627\u0633 \u067e\u0631 \u0644\u0627\u06af\u062a \u0622\u062a\u06cc \u06c1\u06d2\u06d4<\/p>\n<ol>\n<li>\n<p><strong>\u0627\u0648\u067e\u0631 \u0644\u06a9\u06be\u06cc\u06ba\u06d4<\/strong> - \u06a9\u0633\u06cc \u0628\u06be\u06cc INSERT\u060c UPDATE\u060c \u06cc\u0627 DELETE \u06a9\u06d2 \u0644\u06cc\u06d2 \u0645\u06cc\u0632 \u067e\u0631 \u0645\u0648\u062c\u0648\u062f \u062a\u0645\u0627\u0645 \u0627\u0634\u0627\u0631\u06cc\u06c1 \u062c\u0627\u062a \u06a9\u0648 \u0628\u06be\u06cc \u0627\u067e \u0688\u06cc\u0679 \u06a9\u0631\u0646\u0627 \u0686\u0627\u06c1\u06cc\u06d2\u06d4 \u0627\u06af\u0631 \u06a9\u0633\u06cc \u0679\u06cc\u0628\u0644 \u0645\u06cc\u06ba 10 \u0627\u0634\u0627\u0631\u06cc\u06c1 \u062c\u0627\u062a \u06c1\u06cc\u06ba \u0627\u0648\u0631 \u0622\u067e \u0627\u06cc\u06a9 \u0642\u0637\u0627\u0631 \u062f\u0627\u062e\u0644 \u06a9\u0631\u062a\u06d2 \u06c1\u06cc\u06ba\u060c \u062a\u0648 PostgreSQL 11 \u062a\u062d\u0631\u06cc\u0631\u06cc\u06ba \u0627\u0646\u062c\u0627\u0645 \u062f\u06cc\u062a\u0627 \u06c1\u06d2 (\u0627\u06cc\u06a9 \u0641\u06cc \u0679\u06cc\u0628\u0644 \u0627\u0648\u0631 \u0627\u06cc\u06a9 \u0641\u06cc \u0627\u0646\u0688\u06cc\u06a9\u0633)\u06d4 \u0628\u06c1\u062a \u0632\u06cc\u0627\u062f\u06c1 \u062a\u062d\u0631\u06cc\u0631\u06cc \u0633\u0631\u06af\u0631\u0645\u06cc \u06a9\u06d2 \u0633\u0627\u062a\u06be \u0645\u06cc\u0632\u0648\u06ba \u067e\u0631\u060c \u0628\u06c1\u062a \u0632\u06cc\u0627\u062f\u06c1 \u0627\u0634\u0627\u0631\u06cc\u06c1 \u062c\u0627\u062a \u06a9\u0627 \u06c1\u0648\u0646\u0627 \u0688\u06cc\u0679\u0627 \u0645\u06cc\u06ba \u062a\u0631\u0645\u06cc\u0645 \u06a9\u0648 \u0646\u0645\u0627\u06cc\u0627\u06ba \u0637\u0648\u0631 \u067e\u0631 \u0633\u0633\u062a \u06a9\u0631 \u0633\u06a9\u062a\u0627 \u06c1\u06d2\u06d4<\/p>\n<\/li>\n<li>\n<p><strong>\u0627\u0633\u0679\u0648\u0631\u06cc\u062c \u06a9\u06cc \u0644\u0627\u06af\u062a<\/strong> - \u0627\u0634\u0627\u0631\u06cc\u06c1 \u062c\u0627\u062a \u0688\u0633\u06a9 \u06a9\u06cc \u062c\u06af\u06c1 \u0627\u0633\u062a\u0639\u0645\u0627\u0644 \u06a9\u0631\u062a\u06d2 \u06c1\u06cc\u06ba\u06d4 \u0628\u0691\u06cc \u0645\u06cc\u0632\u0648\u06ba \u067e\u0631\u060c \u0627\u0634\u0627\u0631\u06cc\u06c1 \u062c\u0627\u062a \u062e\u0648\u062f \u0645\u06cc\u0632 \u062c\u062a\u0646\u06cc \u062c\u06af\u06c1 \u0644\u06d2 \u0633\u06a9\u062a\u06d2 \u06c1\u06cc\u06ba\u060c \u0627\u0648\u0631 \u0628\u0639\u0636 \u0627\u0648\u0642\u0627\u062a \u0632\u06cc\u0627\u062f\u06c1\u06d4 \u0622\u067e \u0627\u0633\u06d2 \u0686\u06cc\u06a9 \u06a9\u0631 \u0633\u06a9\u062a\u06d2 \u06c1\u06cc\u06ba\u06d4 <code>pg_relation_size<\/code>.<\/p>\n<\/li>\n<li>\n<p><strong>\u0645\u06cc\u0645\u0648\u0631\u06cc \u06a9\u06cc \u06a9\u06be\u067e\u062a<\/strong> - PostgreSQL \u0645\u06cc\u0645\u0648\u0631\u06cc \u0645\u06cc\u06ba \u0627\u06a9\u062b\u0631 \u0627\u0633\u062a\u0639\u0645\u0627\u0644 \u06c1\u0648\u0646\u06d2 \u0648\u0627\u0644\u06d2 \u0627\u0634\u0627\u0631\u06cc\u06c1 \u062c\u0627\u062a \u06a9\u06cc\u0634 \u06a9\u0631\u062a\u0627 \u06c1\u06d2\u06d4 \u0645\u0632\u06cc\u062f \u0627\u0634\u0627\u0631\u06cc\u06c1 \u062c\u0627\u062a \u0645\u06cc\u0645\u0648\u0631\u06cc \u067e\u0631 \u0632\u06cc\u0627\u062f\u06c1 \u062f\u0628\u0627\u0624 \u0688\u0627\u0644 \u0633\u06a9\u062a\u06d2 \u06c1\u06cc\u06ba\u060c \u0645\u0641\u06cc\u062f \u0688\u06cc\u0679\u0627 \u06a9\u0648 \u06a9\u06cc\u0634\u06d2 \u0633\u06d2 \u0628\u0627\u06c1\u0631 \u062f\u06be\u06a9\u06cc\u0644 \u0633\u06a9\u062a\u06d2 \u06c1\u06cc\u06ba \u0627\u0648\u0631 \u062f\u06cc\u06af\u0631 \u0633\u0648\u0627\u0644\u0627\u062a \u06a9\u0648 \u0633\u0633\u062a \u06a9\u0631 \u0633\u06a9\u062a\u06d2 \u06c1\u06cc\u06ba\u06d4<\/p>\n<\/li>\n<li>\n<p><strong>\u062f\u06cc\u06a9\u06be \u0628\u06be\u0627\u0644 \u06a9\u0627 \u0628\u0648\u062c\u06be<\/strong> - \u0627\u0634\u0627\u0631\u06cc\u06c1 \u062c\u0627\u062a \u06a9\u0648 \u0648\u0642\u062a\u0627\u064b \u0641\u0648\u0642\u062a\u0627\u064b \u062f\u06cc\u06a9\u06be \u0628\u06be\u0627\u0644 \u06a9\u06cc \u0636\u0631\u0648\u0631\u062a \u06c1\u0648\u062a\u06cc \u06c1\u06d2 (\u062e\u0627\u0644\u06cc \u06a9\u0631\u0646\u0627\u060c \u062f\u0648\u0628\u0627\u0631\u06c1 \u0627\u0634\u0627\u0631\u06cc\u06c1 \u0628\u0646\u0627\u0646\u0627) \u0627\u0648\u0631 \u0627\u0633\u06a9\u06cc\u0645\u0627 \u0645\u0646\u062a\u0642\u0644\u06cc \u0632\u06cc\u0627\u062f\u06c1 \u067e\u06cc\u0686\u06cc\u062f\u06c1 \u06c1\u0648 \u062c\u0627\u062a\u06cc \u06c1\u06d2\u06d4<\/p>\n<\/li>\n<\/ol>\n<p>\u067e\u0648\u0686\u06be\u0646\u0627 \u0633\u0648\u0627\u0644 \u06cc\u06c1 \u0646\u06c1\u06cc\u06ba \u06c1\u06d2 \u06a9\u06c1 \"\u06a9\u06cc\u0627 \u0645\u062c\u06be\u06d2 \u0627\u0646\u0688\u06cc\u06a9\u0633 \u0634\u0627\u0645\u0644 \u06a9\u0631\u0646\u0627 \u0686\u0627\u06c1\u0626\u06d2\u061f\" \u0628\u0644\u06a9\u06c1\u060c \"\u06a9\u06cc\u0627 \u067e\u0691\u06be\u0646\u06d2 \u06a9\u06cc \u06a9\u0627\u0631\u06a9\u0631\u062f\u06af\u06cc \u06a9\u0627 \u0641\u0627\u0626\u062f\u06c1 \u0627\u0633 \u0679\u06cc\u0628\u0644 \u06a9\u06d2 \u06a9\u0627\u0645 \u06a9\u06d2 \u0628\u0648\u062c\u06be \u06a9\u06d2 \u0644\u06cc\u06d2 \u062a\u062d\u0631\u06cc\u0631\u06cc \u06a9\u0627\u0631\u06a9\u0631\u062f\u06af\u06cc \u06a9\u06cc \u0644\u0627\u06af\u062a \u06a9\u0627 \u062c\u0648\u0627\u0632 \u067e\u06cc\u0634 \u06a9\u0631\u062a\u0627 \u06c1\u06d2\u061f\"<\/p>\n<h2 id=\"heading-common-mistakes-that-prevent-index-usage\">\u0639\u0627\u0645 \u063a\u0644\u0637\u06cc\u0627\u06ba \u062c\u0648 \u0622\u067e \u06a9\u0648 \u0627\u0646\u0688\u06cc\u06a9\u0633 \u0627\u0633\u062a\u0639\u0645\u0627\u0644 \u06a9\u0631\u0646\u06d2 \u0633\u06d2 \u0631\u0648\u06a9\u062a\u06cc \u06c1\u06cc\u06ba\u06d4<\/h2>\n<p>\u0622\u067e \u06a9\u06d2 \u067e\u0627\u0633 \u0627\u06cc\u06a9 \u0628\u06c1\u062a\u0631\u06cc\u0646 \u0627\u0646\u0688\u06cc\u06a9\u0633 \u06c1\u0648 \u0633\u06a9\u062a\u0627 \u06c1\u06d2\u060c \u0644\u06cc\u06a9\u0646 PostgreSQL \u067e\u06be\u0631 \u0628\u06be\u06cc \u0627\u0633\u06d2 \u0646\u0638\u0631 \u0627\u0646\u062f\u0627\u0632 \u06a9\u0631 \u0633\u06a9\u062a\u0627 \u06c1\u06d2\u06d4 \u0633\u0628 \u0633\u06d2 \u0639\u0627\u0645 \u0648\u062c\u0648\u06c1\u0627\u062a \u06c1\u06cc\u06ba:<\/p>\n<h3 id=\"heading-wrapping-the-indexed-column-in-a-function\">\u0641\u0646\u06a9\u0634\u0646\u0632 \u0645\u06cc\u06ba \u0627\u0646\u0688\u06cc\u06a9\u0633 \u0634\u062f\u06c1 \u06a9\u0627\u0644\u0645\u0648\u06ba \u06a9\u0648 \u0644\u067e\u06cc\u0679\u0646\u0627<\/h3>\n<pre><code class=\"language-sql\">-- Index on email\nCREATE INDEX idx_email ON customers (email);\n\n-- &#x274c; PostgreSQL cannot use the index because of LOWER()\nSELECT * FROM customers WHERE LOWER(email) = 'user1@example.com';\n\n-- &#x2705; Fix: create an expression index on LOWER(email)\nCREATE INDEX idx_email_lower ON customers (LOWER(email));\n<\/code><\/pre>\n<p>WHERE \u0634\u0642 \u0645\u06cc\u06ba \u0627\u0646\u0688\u06cc\u06a9\u0633 \u06a9\u0627\u0644\u0645 \u067e\u0631 \u0644\u0627\u06af\u0648 \u0641\u0646\u06a9\u0634\u0646 \u0645\u0639\u06cc\u0627\u0631\u06cc \u0627\u0634\u0627\u0631\u06cc\u06c1 \u062c\u0627\u062a \u06a9\u06d2 \u0627\u0633\u062a\u0639\u0645\u0627\u0644 \u06a9\u0648 \u0631\u0648\u06a9\u062a\u06d2 \u06c1\u06cc\u06ba\u06d4 \u0641\u0646\u06a9\u0634\u0646 \u0633\u06d2 \u0645\u0645\u0627\u062b\u0644 \u0627\u06cc\u06a9 \u0627\u06cc\u06a9\u0633\u067e\u0631\u06cc\u0634\u0646 \u0627\u0646\u0688\u06cc\u06a9\u0633 \u062f\u0631\u06a9\u0627\u0631 \u06c1\u06d2\u06d4<\/p>\n<h3 id=\"heading-implicit-type-casting\">\u0645\u0636\u0645\u0631 \u0642\u0633\u0645 \u06a9\u0627\u0633\u0679\u0646\u06af<\/h3>\n<pre><code class=\"language-sql\">-- id is an INTEGER column with an index\n-- &#x274c; Passing a string forces a type cast, which may prevent index usage\nSELECT * FROM customers WHERE id = '42';\n\n-- &#x2705; Use the correct type\nSELECT * FROM customers WHERE id = 42;\n<\/code><\/pre>\n<p>\u0627\u06af\u0631 \u0627\u0633\u062a\u0641\u0633\u0627\u0631 \u0645\u06cc\u06ba \u0642\u062f\u0631 \u06a9\u06cc \u0642\u0633\u0645\u06cc\u06ba \u06a9\u0627\u0644\u0645 \u06a9\u06cc \u0627\u0642\u0633\u0627\u0645 \u0633\u06d2 \u0645\u0645\u0627\u062b\u0644 \u0646\u06c1\u06cc\u06ba \u06c1\u06cc\u06ba\u060c \u062a\u0648 PostgreSQL \u06a9\u0627\u0644\u0645\u0648\u06ba \u06a9\u0648 \u0645\u0645\u0627\u062b\u0644\u062a \u06a9\u06d2 \u0644\u06cc\u06d2 \u06a9\u0627\u0633\u0679 \u06a9\u0631 \u0633\u06a9\u062a\u0627 \u06c1\u06d2\u060c \u0627\u0646\u0688\u06cc\u06a9\u0633 \u06a9\u06d2 \u0627\u0633\u062a\u0639\u0645\u0627\u0644 \u06a9\u0648 \u0631\u0648\u06a9\u062a\u0627 \u06c1\u06d2\u06d4<\/p>\n<h3 id=\"heading-using-or-conditions-across-different-columns\">\u0645\u062a\u0639\u062f\u062f \u06a9\u0627\u0644\u0645\u0648\u06ba \u067e\u0631 OR \u0634\u0631\u0627\u0626\u0637 \u0627\u0633\u062a\u0639\u0645\u0627\u0644 \u06a9\u0631\u06cc\u06ba\u06d4<\/h3>\n<pre><code class=\"language-sql\">-- &#x274c; OR across different columns can prevent index usage\nSELECT * FROM customers WHERE email=\"user1@example.com\" OR city = 'Lagos';\n\n-- &#x2705; Rewrite as UNION for better index utilization\nSELECT * FROM customers WHERE email=\"user1@example.com\"\nUNION\nSELECT * FROM customers WHERE city = 'Lagos';\n<\/code><\/pre>\n<h3 id=\"heading-leading-wildcards-in-like-queries\">LIKE \u06a9\u06d2 \u0627\u0633\u062a\u0641\u0633\u0627\u0631 \u0645\u06cc\u06ba \u0633\u0631 \u0641\u06c1\u0631\u0633\u062a \u0648\u0627\u0626\u0644\u0688 \u06a9\u0627\u0631\u0688<\/h3>\n<pre><code class=\"language-sql\">-- &#x274c; Leading wildcard cannot use a B-tree index\nSELECT * FROM customers WHERE email LIKE '%@example.com';\n\n-- &#x2705; Trailing wildcard CAN use a B-tree index\nSELECT * FROM customers WHERE email LIKE 'user1%';\n<\/code><\/pre>\n<p>\u0628\u06cc \u0679\u0631\u06cc \u0627\u0646\u0688\u06cc\u06a9\u0633 \u06a9\u0648 \u0628\u0627\u0626\u06cc\u06ba \u0633\u06d2 \u062f\u0627\u0626\u06cc\u06ba \u062a\u0631\u062a\u06cc\u0628 \u062f\u06cc\u0627 \u06af\u06cc\u0627 \u06c1\u06d2\u06d4 \u0645\u0639\u0631\u0648\u0641 \u0648\u0627\u0626\u0644\u0688 \u06a9\u0627\u0631\u0688 (<code>%something<\/code>) \u06a9\u0627 \u0645\u0637\u0644\u0628 \u06c1\u06d2 \u06a9\u06c1 \u0688\u06cc\u0679\u0627 \u0628\u06cc\u0633 \u062a\u0631\u062a\u06cc\u0628 \u0634\u062f\u06c1 \u0688\u06be\u0627\u0646\u0686\u06c1 \u0627\u0633\u062a\u0639\u0645\u0627\u0644 \u0646\u06c1\u06cc\u06ba \u06a9\u0631 \u0633\u06a9\u062a\u0627 \u0627\u0648\u0631 \u0627\u06cc\u06a9 \u062a\u0631\u062a\u06cc\u0628 \u0648\u0627\u0631 \u0627\u0633\u06a9\u06cc\u0646 \u067e\u0631 \u0648\u0627\u067e\u0633 \u0622\u062c\u0627\u0626\u06d2 \u06af\u0627\u06d4 \u0627\u06af\u0631 \u0622\u067e \u06a9\u0648 \u0644\u0627\u062d\u0642\u06c1 \u06cc\u0627 \u0630\u06cc\u0644\u06cc \u0627\u0633\u0679\u0631\u0646\u06af \u06a9\u06d2 \u0630\u0631\u06cc\u0639\u06c1 \u062a\u0644\u0627\u0634 \u06a9\u0631\u0646\u06d2 \u06a9\u06cc \u0636\u0631\u0648\u0631\u062a \u06c1\u06d2\u060c \u062a\u0648 \u0627\u0633 \u06a9\u06d2 \u0633\u0627\u062a\u06be \u0627\u06cc\u06a9 GIN \u0627\u0646\u0688\u06cc\u06a9\u0633 \u067e\u0631 \u063a\u0648\u0631 \u06a9\u0631\u06cc\u06ba: <code>pg_trgm<\/code> \u062a\u0648\u0633\u06cc\u0639<\/p>\n<h3 id=\"heading-low-selectivity\">\u06a9\u0645 \u0627\u0646\u062a\u062e\u0627\u0628<\/h3>\n<p>\u0627\u06af\u0631 \u06a9\u0633\u06cc \u06a9\u0627\u0644\u0645 \u0645\u06cc\u06ba \u0642\u0637\u0627\u0631\u0648\u06ba \u06a9\u06cc \u062a\u0639\u062f\u0627\u062f (\u06a9\u0645 \u0633\u0644\u06cc\u06a9\u0679\u06cc\u0648\u0679\u06cc) \u06a9\u06d2 \u0646\u0633\u0628\u062a \u06a9\u0686\u06be \u0645\u0646\u0641\u0631\u062f \u0642\u062f\u0631\u06cc\u06ba \u06c1\u06cc\u06ba\u060c \u062a\u0648 PostgreSQL \u0641\u06cc\u0635\u0644\u06c1 \u06a9\u0631 \u0633\u06a9\u062a\u0627 \u06c1\u06d2 \u06a9\u06c1 \u062a\u0631\u062a\u06cc\u0628 \u0648\u0627\u0631 \u0627\u0633\u06a9\u06cc\u0646 \u0627\u0646\u0688\u06cc\u06a9\u0633 \u0627\u0633\u062a\u0639\u0645\u0627\u0644 \u06a9\u0631\u0646\u06d2 \u0633\u06d2 \u0632\u06cc\u0627\u062f\u06c1 \u062a\u06cc\u0632 \u06c1\u06d2\u06d4<\/p>\n<p>\u0645\u062b\u0627\u0644 \u06a9\u06d2 \u0637\u0648\u0631 \u067e\u0631\u060c <code>status<\/code> \u0627\u06cc\u06a9 \u06a9\u0627\u0644\u0645 \u0645\u06cc\u06ba \u0635\u0631\u0641 \u062a\u06cc\u0646 \u0645\u0645\u06a9\u0646\u06c1 \u0627\u0642\u062f\u0627\u0631 \u06c1\u06cc\u06ba (<code>'pending'<\/code>, <code>'shipped'<\/code>, <code>'delivered'<\/code>) \u06c1\u0631 \u0642\u062f\u0631 \u0679\u06cc\u0628\u0644 \u06a9\u0627 \u062a\u0642\u0631\u06cc\u0628\u0627\u064b 1\/3 \u062d\u0635\u06c1 \u0644\u06cc\u062a\u06cc \u06c1\u06d2\u060c <code>status<\/code> \u0627\u06a9\u06cc\u0644\u06d2\u060c \u0628\u06c1\u062a \u06a9\u0645 \u0641\u0627\u0626\u062f\u06c1 \u06c1\u06d2. PostgreSQL \u06a9\u0648 \u0627\u0628\u06be\u06cc \u0628\u06be\u06cc \u0679\u06cc\u0628\u0644 \u06a9\u0627 \u0627\u06cc\u06a9 \u0628\u0691\u0627 \u062d\u0635\u06c1 \u067e\u0691\u06be\u0646\u0627 \u067e\u0691\u062a\u0627 \u06c1\u06d2\u060c \u0627\u0648\u0631 \u0627\u0636\u0627\u0641\u06cc \u0627\u0646\u0688\u06cc\u06a9\u0633 \u062f\u06cc\u06a9\u06be\u0646\u06d2 \u0645\u06cc\u06ba \u0627\u0648\u0648\u0631 \u06c1\u06cc\u0688 \u0634\u0627\u0645\u0644 \u06c1\u0648\u062a\u0627 \u06c1\u06d2\u06d4<\/p>\n<p>\u0627\u0646 \u0635\u0648\u0631\u062a\u0648\u06ba \u0645\u06cc\u06ba\u060c \u062c\u0632\u0648\u06cc \u0627\u0634\u0627\u0631\u06cc\u06c1 \u062c\u0627\u062a \u0627\u06a9\u062b\u0631 \u0627\u06cc\u06a9 \u0628\u06c1\u062a\u0631 \u062d\u0644 \u06c1\u0648\u062a\u06d2 \u06c1\u06cc\u06ba\u06d4<\/p>\n<h2 id=\"heading-best-practices-for-indexing\">\u0627\u0634\u0627\u0631\u06cc\u06c1 \u0633\u0627\u0632\u06cc \u06a9\u06d2 \u0628\u06c1\u062a\u0631\u06cc\u0646 \u0637\u0631\u0632 \u0639\u0645\u0644<\/h2>\n<p>\u067e\u06cc\u0631\u0648\u06cc \u06a9\u0631\u0646\u06d2 \u06a9\u06d2 \u06a9\u0644\u06cc\u062f\u06cc \u0627\u0635\u0648\u0644\u0648\u06ba \u06a9\u0627 \u062e\u0644\u0627\u0635\u06c1 \u06a9\u0631\u0646\u06d2 \u06a9\u06d2 \u0644\u06cc\u06d2:<\/p>\n<ol>\n<li>\n<p><strong>\u0627\u0646\u0688\u06cc\u06a9\u0633 \u06a9\u0627\u0644\u0645 \u062c\u0648 WHERE\u060c JOIN\u060c \u0627\u0648\u0631 ORDER BY \u0634\u0642\u0648\u06ba \u0645\u06cc\u06ba \u0638\u0627\u06c1\u0631 \u06c1\u0648\u062a\u0627 \u06c1\u06d2\u06d4<\/strong> \u06cc\u06c1 \u0648\u06c1 \u06a9\u0627\u0644\u0645 \u06c1\u06d2 \u062c\u0633 \u067e\u0631 \u0688\u06cc\u0679\u0627 \u0628\u06cc\u0633 \u06a9\u0648 \u062a\u0644\u0627\u0634 \u06a9\u0631\u0646\u0627\u060c \u0645\u06cc\u0686 \u06a9\u0631\u0646\u0627 \u06cc\u0627 \u062a\u0631\u062a\u06cc\u0628 \u062f\u06cc\u0646\u0627 \u0686\u0627\u06c1\u06cc\u06d2\u06d4 \u0627\u0646 \u0633\u0648\u0627\u0644\u0627\u062a \u06a9\u06d2 \u0633\u0627\u062a\u06be \u0634\u0631\u0648\u0639 \u06a9\u0631\u06cc\u06ba \u062c\u0648 \u0627\u06a9\u062b\u0631 \u0686\u0644\u062a\u06d2 \u06c1\u06cc\u06ba \u06cc\u0627 \u0633\u0628 \u0633\u06d2 \u0632\u06cc\u0627\u062f\u06c1 \u0648\u0642\u062a \u0644\u06cc\u062a\u06d2 \u06c1\u06cc\u06ba\u06d4<\/p>\n<\/li>\n<li>\n<p><strong>EXPLAIN NALYZE \u06a9\u06d2 \u0633\u0627\u062a\u06be \u067e\u06c1\u0644\u06d2 \u0627\u0648\u0631 \u0628\u0639\u062f \u06a9\u06cc \u067e\u06cc\u0645\u0627\u0626\u0634 \u06a9\u0631\u06cc\u06ba\u06d4<\/strong> \u0627\u0646\u062f\u0627\u0632\u06d2 \u06a9\u06cc \u0628\u0646\u06cc\u0627\u062f \u067e\u0631 \u0627\u0634\u0627\u0631\u06cc\u06c1 \u062c\u0627\u062a \u0634\u0627\u0645\u0644 \u0646\u06c1 \u06a9\u0631\u06cc\u06ba\u06d4 \u0627\u0633\u062a\u0641\u0633\u0627\u0631 \u06a9\u0648 \u0627\u0633\u062a\u0639\u0645\u0627\u0644 \u06a9\u0631\u062a\u06d2 \u06c1\u0648\u0626\u06d2 \u0686\u0644\u0627\u0626\u06cc\u06ba: <code>EXPLAIN ANALYZE<\/code>\u0627\u0646\u0688\u06cc\u06a9\u0633 \u0634\u0627\u0645\u0644 \u06a9\u0631\u06cc\u06ba \u0627\u0648\u0631 \u062f\u0648\u0628\u0627\u0631\u06c1 \u0686\u0644\u0627\u0626\u06cc\u06ba\u06d4 \u0627\u06af\u0631 \u0639\u0645\u0644\u062f\u0631\u0622\u0645\u062f \u06a9\u06d2 \u0648\u0642\u062a \u0645\u06cc\u06ba \u06a9\u0648\u0626\u06cc \u0645\u0639\u0646\u06cc \u062e\u06cc\u0632 \u0628\u06c1\u062a\u0631\u06cc \u0646\u06c1\u06cc\u06ba \u0622\u062a\u06cc \u06c1\u06d2 \u062a\u0648\u060c \u0627\u0646\u0688\u06cc\u06a9\u0633 \u0645\u062f\u062f \u0646\u06c1\u06cc\u06ba \u06a9\u0631 \u0631\u06c1\u0627 \u06c1\u06d2\u06d4<\/p>\n<\/li>\n<li>\n<p><strong>\u06c1\u0631 \u06a9\u0627\u0644\u0645 \u06a9\u0648 \u0627\u0646\u0688\u06cc\u06a9\u0633 \u0646\u06c1 \u06a9\u0631\u06cc\u06ba\u06d4<\/strong> \u06c1\u0631 \u0627\u0634\u0627\u0631\u06cc\u06c1 \u0633\u0633\u062a \u06c1\u0648 \u062c\u0627\u062a\u0627 \u06c1\u06d2 \u0644\u06a9\u06be\u062a\u0627 \u06c1\u06d2 \u0627\u0648\u0631 \u0630\u062e\u06cc\u0631\u06c1 \u06a9\u0631\u062a\u0627 \u06c1\u06d2\u06d4 \u0627\u062d\u062a\u06cc\u0627\u0637 \u0633\u06d2 \u0641\u06cc\u0635\u0644\u06c1 \u06a9\u0631\u06cc\u06ba \u06a9\u06c1 \u0622\u067e \u06a9\u06d2 \u0627\u0635\u0644 \u0627\u0633\u062a\u0641\u0633\u0627\u0631 \u06a9\u06d2 \u0646\u0645\u0648\u0646\u0648\u06ba \u06a9\u06cc \u0628\u0646\u06cc\u0627\u062f \u067e\u0631 \u06a9\u0646 \u06a9\u0627\u0644\u0645\u0648\u06ba \u06a9\u0648 \u0627\u0646\u0688\u06cc\u06a9\u0633 \u06a9\u0631\u0646\u0627 \u06c1\u06d2\u06d4<\/p>\n<\/li>\n<li>\n<p><strong>\u0645\u0644\u0679\u06cc \u06a9\u0627\u0644\u0645 \u0641\u0644\u0679\u0631\u0632 \u062c\u0627\u0645\u0639 \u0627\u0634\u0627\u0631\u06cc\u06c1 \u062c\u0627\u062a \u06a9\u0627 \u0627\u0633\u062a\u0639\u0645\u0627\u0644 \u06a9\u0631\u062a\u06d2 \u06c1\u06cc\u06ba\u06d4<\/strong> \u0627\u06af\u0631 \u0622\u067e \u06a9\u0627 \u0627\u0633\u062a\u0641\u0633\u0627\u0631 \u0639\u0627\u0645 \u0637\u0648\u0631 \u067e\u0631 \u0641\u0644\u0679\u0631 \u06a9\u0631\u062a\u0627 \u06c1\u06d2: <code>city<\/code> \u0627\u0648\u0631 <code>last_name<\/code> \u0627\u06cc\u06a9 \u0633\u0627\u062a\u06be\u060c \u0627\u06cc\u06a9 \u062c\u0627\u0645\u0639 \u0627\u0634\u0627\u0631\u06cc\u06c1 <code>(city, last_name)<\/code> \u062f\u0648 \u0627\u0644\u06af \u0627\u0644\u06af \u0633\u0646\u06af\u0644 \u06a9\u0627\u0644\u0645 \u0627\u0646\u0688\u06cc\u06a9\u0633 \u0633\u06d2 \u0632\u06cc\u0627\u062f\u06c1 \u0645\u0648\u062b\u0631\u06d4<\/p>\n<\/li>\n<li>\n<p><strong>\u0627\u06cc\u06a9 \u062c\u0627\u0645\u0639 \u0627\u0646\u0688\u06cc\u06a9\u0633 \u0633\u0628 \u0633\u06d2 \u0632\u06cc\u0627\u062f\u06c1 \u0645\u0646\u062a\u062e\u0628 \u06a9\u0627\u0644\u0645\u0648\u06ba \u06a9\u0648 \u067e\u06c1\u0644\u06d2 \u0631\u06a9\u06be\u062a\u0627 \u06c1\u06d2\u06d4<\/strong> \u0648\u06c1 \u06a9\u0627\u0644\u0645 \u062c\u0648 \u0646\u062a\u0627\u0626\u062c \u06a9\u0648 \u0633\u0628 \u0633\u06d2 \u0632\u06cc\u0627\u062f\u06c1 \u062a\u0646\u06af \u06a9\u0631\u062a\u0627 \u06c1\u06d2 \u067e\u06c1\u0644\u06d2 \u0622\u0646\u0627 \u0686\u0627\u06c1\u06cc\u06d2\u06d4<\/p>\n<\/li>\n<li>\n<p><strong>\u062c\u0628 \u0622\u067e \u0627\u067e\u0646\u06d2 \u0688\u06cc\u0679\u0627 \u06a9\u06d2 \u0635\u0631\u0641 \u0630\u06cc\u0644\u06cc \u0633\u06cc\u0679 \u0633\u06d2 \u0627\u0633\u062a\u0641\u0633\u0627\u0631 \u06a9\u0631 \u0631\u06c1\u06d2 \u06c1\u0648\u06ba \u062a\u0648 \u062c\u0632\u0648\u06cc \u0627\u0634\u0627\u0631\u06cc\u06c1 \u062c\u0627\u062a \u06a9\u0627 \u0627\u0633\u062a\u0639\u0645\u0627\u0644 \u06a9\u0631\u06cc\u06ba\u06d4<\/strong> \u062c\u0628 90% \u0633\u0648\u0627\u0644\u0627\u062a \u062f\u0631\u062c \u0630\u06cc\u0644 \u0642\u0637\u0627\u0631\u0648\u06ba \u06a9\u0648 \u0646\u0634\u0627\u0646\u06c1 \u0628\u0646\u0627\u062a\u06d2 \u06c1\u06cc\u06ba: <code>status=\"active\"<\/code>\u0627\u0633 \u0633\u0628 \u0633\u06cc\u0679 \u067e\u0631 \u0627\u06cc\u06a9 \u062c\u0632\u0648\u06cc \u0627\u0646\u0688\u06cc\u06a9\u0633 \u0645\u06a9\u0645\u0644 \u0627\u0646\u0688\u06cc\u06a9\u0633 \u0633\u06d2 \u0686\u06be\u0648\u0679\u0627 \u0627\u0648\u0631 \u062a\u06cc\u0632 \u06c1\u0648\u062a\u0627 \u06c1\u06d2\u06d4<\/p>\n<\/li>\n<li>\n<p><strong>\u0627\u0646\u0688\u06cc\u06a9\u0633 \u06a9\u06d2 \u0627\u0633\u062a\u0639\u0645\u0627\u0644 \u06a9\u06cc \u0628\u0627\u0642\u0627\u0639\u062f\u06af\u06cc \u0633\u06d2 \u0646\u06af\u0631\u0627\u0646\u06cc \u06a9\u0631\u06cc\u06ba\u06d4<\/strong> \u0633\u0648\u0627\u0644 <code>pg_stat_user_indexes<\/code> \u063a\u06cc\u0631 \u0627\u0633\u062a\u0639\u0645\u0627\u0644 \u0634\u062f\u06c1 \u0627\u0634\u0627\u0631\u06cc\u06c1 \u062c\u0627\u062a \u062a\u0644\u0627\u0634 \u06a9\u0631\u06cc\u06ba \u0627\u0648\u0631 \u06c1\u0679\u0627 \u062f\u06cc\u06ba\u06d4<\/p>\n<\/li>\n<li>\n<p><strong>\u0648\u0642\u062a\u0627 \u0641\u0648\u0642\u062a\u0627 \u067e\u06be\u0648\u0644\u06d2 \u06c1\u0648\u0626\u06d2 \u0627\u0634\u0627\u0631\u06cc\u06c1 \u062c\u0627\u062a \u06a9\u0648 \u062f\u0648\u0628\u0627\u0631\u06c1 \u0628\u0646\u0627\u0626\u06cc\u06ba\u06d4<\/strong> \u0628\u06c1\u062a \u0633\u0627\u0631\u06cc \u0627\u067e \u0688\u06cc\u0679\/\u0688\u06cc\u0644\u06cc\u0679 \u0633\u0631\u06af\u0631\u0645\u06cc \u0648\u0627\u0644\u06cc \u0645\u06cc\u0632\u0648\u06ba \u067e\u0631\u060c \u0627\u0634\u0627\u0631\u06cc\u06c1 \u062c\u0627\u062a \u067e\u06be\u0648\u0644\u06d2 \u06c1\u0648\u0626\u06d2 \u06c1\u0648 \u0633\u06a9\u062a\u06d2 \u06c1\u06cc\u06ba\u06d4 \u0627\u0633\u062a\u0639\u0645\u0627\u0644 \u06a9\u0631\u06cc\u06ba <code>REINDEX CONCURRENTLY<\/code> \u067e\u06cc\u062f\u0627\u0648\u0627\u0631 \u06a9\u06d2 \u0646\u0638\u0627\u0645 \u06a9\u0648.<\/p>\n<\/li>\n<\/ol>\n<h2 id=\"heading-conclusion\">\u0646\u062a\u06cc\u062c\u06c1<\/h2>\n<p>\u0627\u0633 \u0679\u06cc\u0648\u0679\u0648\u0631\u06cc\u0644 \u0645\u06cc\u06ba\u060c \u0622\u067e \u0646\u06d2 \u0633\u06cc\u06a9\u06be\u0627 \u06a9\u06c1 \u0688\u06cc\u0679\u0627 \u0628\u06cc\u0633 \u0627\u0646\u0688\u06cc\u06a9\u0633 \u06a9\u06cc\u0627 \u06c1\u06cc\u06ba \u0627\u0648\u0631 \u0648\u06c1 \u0627\u0633\u062a\u0641\u0633\u0627\u0631 \u06a9\u06cc \u06a9\u0627\u0631\u06a9\u0631\u062f\u06af\u06cc \u06a9\u06d2 \u0644\u06cc\u06d2 \u06a9\u06cc\u0648\u06ba \u0627\u06c1\u0645 \u06c1\u06cc\u06ba\u06d4 \u06c1\u0645 \u0646\u06d2 \u062f\u0631\u06cc\u0627\u0641\u062a \u06a9\u06cc\u0627 \u06a9\u06c1 \u06a9\u0633 \u0637\u0631\u062d B-tree \u0627\u0634\u0627\u0631\u06cc\u06c1 \u062c\u0627\u062a \u0627\u0646\u062f\u0631\u0648\u0646\u06cc \u0637\u0648\u0631 \u067e\u0631 \u06a9\u0627\u0645 \u06a9\u0631\u062a\u06d2 \u06c1\u06cc\u06ba \u0627\u0648\u0631 \u06a9\u0626\u06cc \u0642\u0633\u0645 \u06a9\u06d2 \u0627\u0634\u0627\u0631\u06cc\u06c1 \u062c\u0627\u062a (\u0633\u0646\u06af\u0644 \u06a9\u0627\u0644\u0645\u060c \u062c\u0627\u0645\u0639\u060c \u062c\u0632\u0648\u06cc\u060c \u0627\u0638\u06c1\u0627\u0631\u060c \u0627\u0648\u0631 \u0645\u0646\u0641\u0631\u062f) \u0628\u0646\u0627\u0626\u06d2 \u0627\u0648\u0631 \u0627\u0633\u062a\u0639\u0645\u0627\u0644 \u06a9\u0631\u062a\u06d2 \u06c1\u06cc\u06ba\u06d4 <code>EXPLAIN ANALYZE<\/code> \u0627\u062b\u0631 \u06a9\u06cc \u067e\u06cc\u0645\u0627\u0626\u0634 \u06a9\u0631\u06cc\u06ba\u06d4<\/p>\n<p>\u0622\u067e \u0646\u06d2 \u0627\u0634\u0627\u0631\u06cc\u06c1 \u062c\u0627\u062a \u06a9\u06d2 \u0641\u0648\u0627\u0626\u062f \u0627\u0648\u0631 \u0646\u0642\u0635\u0627\u0646\u0627\u062a \u06a9\u06d2 \u0628\u0627\u0631\u06d2 \u0645\u06cc\u06ba \u0628\u06be\u06cc \u0633\u06cc\u06a9\u06be\u0627\u060c \u0628\u0634\u0645\u0648\u0644 \u0631\u0627\u0626\u0679 \u0627\u0648\u0648\u0631 \u06c1\u06cc\u0688\u060c \u0633\u0679\u0648\u0631\u06cc\u062c \u06a9\u06d2 \u0627\u062e\u0631\u0627\u062c\u0627\u062a\u060c \u0627\u0648\u0631 \u0645\u06cc\u0645\u0648\u0631\u06cc \u067e\u0631\u06cc\u0634\u0631 \u06a9\u06d2 \u0633\u0627\u062a\u06be \u0633\u0627\u062a\u06be \u0648\u06c1 \u0639\u0627\u0645 \u063a\u0644\u0637\u06cc\u0627\u06ba \u062c\u0648 \u062e\u0648\u062f \u0628\u062e\u0648\u062f \u0622\u067e \u06a9\u0648 PostgreSQL \u0645\u06cc\u06ba \u0627\u0646\u0688\u06cc\u06a9\u0633 \u0627\u0633\u062a\u0639\u0645\u0627\u0644 \u06a9\u0631\u0646\u06d2 \u0633\u06d2 \u0631\u0648\u06a9\u062a\u06cc \u06c1\u06cc\u06ba\u06d4<\/p>\n<p>\u0628\u0646\u06cc\u0627\u062f\u06cc \u0627\u0635\u0648\u0644 \u0633\u0627\u062f\u06c1 \u06c1\u06d2\u06d4 \u062e\u06cc\u0627\u0644 \u06cc\u06c1 \u06c1\u06d2 \u06a9\u06c1 \u062c\u0627\u0646 \u0628\u0648\u062c\u06be \u06a9\u0631 \u0627\u0635\u0644 \u0627\u0633\u062a\u0641\u0633\u0627\u0631 \u06a9\u06d2 \u0646\u0645\u0648\u0646\u0648\u06ba \u06a9\u06cc \u0628\u0646\u06cc\u0627\u062f \u067e\u0631 \u0627\u0634\u0627\u0631\u06cc\u06c1 \u062c\u0627\u062a \u0628\u0646\u0627\u0626\u06cc\u06ba\u060c \u0646\u062a\u0627\u0626\u062c \u06a9\u06cc \u067e\u06cc\u0645\u0627\u0626\u0634 \u06a9\u0631\u06cc\u06ba\u060c \u0627\u0648\u0631 \u063a\u06cc\u0631 \u0627\u06c1\u0645 \u0627\u0634\u06cc\u0627\u0621 \u06a9\u0648 \u06c1\u0679\u0627 \u062f\u06cc\u06ba\u06d4<\/p>\n<p>\u0627\u06af\u0631 \u0622\u067e \u06a9\u0648 \u06cc\u06c1 \u0679\u06cc\u0648\u0679\u0648\u0631\u06cc\u0644 \u06a9\u0627\u0631\u0622\u0645\u062f \u0644\u06af\u0627\u060c \u062a\u0648 \u0622\u067e \u0645\u06cc\u0631\u06cc \u0645\u0632\u06cc\u062f \u062a\u062d\u0631\u06cc\u0631\u06cc\u06ba freeCodeCamp \u067e\u0631 \u062a\u0644\u0627\u0634 \u06a9\u0631 \u0633\u06a9\u062a\u06d2 \u06c1\u06cc\u06ba \u0627\u0648\u0631 LinkedIn \u067e\u0631 \u0645\u062c\u06be \u0633\u06d2 \u0631\u0627\u0628\u0637\u06c1 \u06a9\u0631 \u0633\u06a9\u062a\u06d2 \u06c1\u06cc\u06ba\u06d4<\/p>\n<\/p><\/div>\n","protected":false},"excerpt":{"rendered":"<p>\u06c1\u0631 \u0688\u0648\u06cc\u0644\u067e\u0631 \u06a9\u0648 \u0622\u062e\u0631 \u06a9\u0627\u0631 \u0633\u0633\u062a \u0633\u0648\u0627\u0644\u0627\u062a \u06a9\u0627 \u0633\u0627\u0645\u0646\u0627 \u06a9\u0631\u0646\u0627 \u067e\u0691\u062a\u0627 \u06c1\u06d2\u06d4 \u0645\u06cc\u0632\u06cc\u06ba \u0633\u06cc\u06a9\u0691\u0648\u06ba \u0642\u0637\u0627\u0631\u0648\u06ba \u0633\u06d2 \u0628\u0691\u06be \u06a9\u0631 \u0644\u0627\u06a9\u06be\u0648\u06ba \u0642\u0637\u0627\u0631\u0648\u06ba \u062a\u06a9 \u067e\u06c1\u0646\u0686 \u06af\u0626\u06cc \u06c1\u06cc\u06ba\u060c \u0627\u0648\u0631 \u0622\u067e\u0631\u06cc\u0634\u0646\u0632 \u062c\u0648 \u067e\u06c1\u0644\u06d2 \u0645\u0644\u06cc \u0633\u06cc\u06a9\u0646\u0688 \u0644\u06cc\u062a\u06d2 \u062a\u06be\u06d2 \u0627\u0628 \u0633\u06cc\u06a9\u0646\u0688 \u06cc\u0627 \u0627\u0633 \u0633\u06d2 \u0632\u06cc\u0627\u062f\u06c1 \u0648\u0642\u062a \u0644\u06af\u062a\u06d2 \u06c1\u06cc\u06ba\u06d4 \u062a\u0631\u0645\u06cc\u0645 \u0639\u0627\u0645 \u0637\u0648\u0631 \u067e\u0631 \u0627\u0634\u0627\u0631\u06cc\u06c1 \u062c\u0627\u062a \u06c1\u06cc\u06ba\u06d4 \u0688\u06cc\u0679\u0627 \u0628\u06cc\u0633 \u0627\u0646\u0688\u06cc\u06a9\u0633 \u0627\u06cc\u06a9 \u0688\u06cc\u0679\u0627 \u0688\u06be\u0627\u0646\u0686\u06c1 \u06c1\u06d2 [&hellip;]<\/p>\n","protected":false},"author":7,"featured_media":0,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"site-sidebar-layout":"default","site-content-layout":"","ast-site-content-layout":"default","site-content-style":"default","site-sidebar-style":"default","ast-global-header-display":"","ast-banner-title-visibility":"","ast-main-header-display":"","ast-hfb-above-header-display":"","ast-hfb-below-header-display":"","ast-hfb-mobile-header-display":"","site-post-title":"","ast-breadcrumbs-content":"","ast-featured-img":"","footer-sml-layout":"","ast-disable-related-posts":"","theme-transparent-header-meta":"","adv-header-id-meta":"","stick-header-meta":"","header-above-stick-meta":"","header-main-stick-meta":"","header-below-stick-meta":"","astra-migrate-meta-layouts":"default","ast-page-background-enabled":"default","ast-page-background-meta":{"desktop":{"background-color":"var(--ast-global-color-5)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"tablet":{"background-color":"","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"mobile":{"background-color":"","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""}},"ast-content-background-meta":{"desktop":{"background-color":"var(--ast-global-color-4)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"tablet":{"background-color":"var(--ast-global-color-4)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"mobile":{"background-color":"var(--ast-global-color-4)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""}},"footnotes":""},"categories":[1],"tags":[],"class_list":["post-22611","post","type-post","status-publish","format-standard","hentry","category-blog"],"_links":{"self":[{"href":"https:\/\/umang.pk\/ur\/wp-json\/wp\/v2\/posts\/22611","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/umang.pk\/ur\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/umang.pk\/ur\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/umang.pk\/ur\/wp-json\/wp\/v2\/users\/7"}],"replies":[{"embeddable":true,"href":"https:\/\/umang.pk\/ur\/wp-json\/wp\/v2\/comments?post=22611"}],"version-history":[{"count":0,"href":"https:\/\/umang.pk\/ur\/wp-json\/wp\/v2\/posts\/22611\/revisions"}],"wp:attachment":[{"href":"https:\/\/umang.pk\/ur\/wp-json\/wp\/v2\/media?parent=22611"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/umang.pk\/ur\/wp-json\/wp\/v2\/categories?post=22611"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/umang.pk\/ur\/wp-json\/wp\/v2\/tags?post=22611"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}