{"id":8790,"date":"2020-06-15T11:10:36","date_gmt":"2020-06-15T18:10:36","guid":{"rendered":"https:\/\/www.couchbase.com\/blog\/?p=8790"},"modified":"2025-06-13T23:42:36","modified_gmt":"2025-06-14T06:42:36","slug":"index-advisor-service-for-n1ql-june-refresh","status":"publish","type":"post","link":"https:\/\/www.couchbase.com\/blog\/ko\/index-advisor-service-for-n1ql-june-refresh\/","title":{"rendered":"N1QL\uc6a9 \uc778\ub371\uc2a4 \uc5b4\ub4dc\ubc14\uc774\uc800 \uc11c\ube44\uc2a4(6\uc6d4 \uc5c5\ub370\uc774\ud2b8)"},"content":{"rendered":"<p>6\uc6d4\uc758 \ud560\uc778 \ud61c\ud0dd\uc740 \ub2e4\uc74c\uacfc \uac19\uc2b5\ub2c8\ub2e4. <a href=\"https:\/\/index-advisor.couchbase.com\/\">\uc778\ub371\uc2a4 \uc5b4\ub4dc\ubc14\uc774\uc800 \uc11c\ube44\uc2a4<\/a> \ub97c 5\uc6d4\uc5d0 \ub9c8\uc9c0\ub9c9\uc73c\ub85c \uc0c8\ub85c \uace0\uce5c \ud6c4 \ubc1c\uacac\ub41c \uba87 \uac00\uc9c0 \ubc84\uadf8\ub97c \uc218\uc815\ud55c \ud6c4 N1QL\uc6a9\uc73c\ub85c \uc5c5\ub370\uc774\ud2b8\ud588\uc2b5\ub2c8\ub2e4. \uc55e\uc73c\ub85c\ub3c4 \uc778\ub371\uc2a4 \uc5b4\ub4dc\ubc14\uc774\uc800 \uc11c\ube44\uc2a4(<a href=\"https:\/\/www.couchbase.com\/blog\/ko\/index-advisor-service\/\">\ubb34\uc2a8 \uc77c\uc774\uc8e0?<\/a>). \uc77c\ubc18\uc801\uc73c\ub85c \ub2e4\uc74c \uc720\uc9c0 \uad00\ub9ac \ub9b4\ub9ac\uc2a4\uc5d0\uc11c \ubcfc \uc218 \uc788\ub294 Index Advisor\uc758 \uc218\uc815 \uc0ac\ud56d\uc744 \uc774\uc81c \ub9e4\ub2ec \uc0ac\uc6a9\ud560 \uc218 \uc788\uc2b5\ub2c8\ub2e4.<\/p>\n<h4>\ub204\uad6c\ub97c \uc704\ud55c \uc11c\ube44\uc2a4\uc778\uac00\uc694? \uc5b8\uc81c \uc0ac\uc6a9\ud574\uc57c \ud558\ub098\uc694?<\/h4>\n<p><a href=\"https:\/\/index-advisor.couchbase.com\/\">https:\/\/index-advisor.couchbase.com\/<\/a><\/p>\n<p>\ubc18\ubcf5\ud574\uc11c \ub9d0\uc500\ub4dc\ub9ac\uc9c0\ub9cc,<\/p>\n<p>\uc774 \uc11c\ube44\uc2a4\ub294 DBA, \uac1c\ubc1c\uc790 \ubc0f \uc544\ud0a4\ud14d\ud2b8\uac00 \ucffc\ub9ac \uc131\ub2a5\uc744 \ucd5c\uc801\ud654\ud558\uace0 SLA\ub97c \ucda9\uc871\ud560 \uc218 \uc788\ub3c4\ub85d \uc778\ub371\uc2a4 \uad8c\uc7a5 \uc0ac\ud56d\uc744 \uc81c\uacf5\ud569\ub2c8\ub2e4.Index Advisor\ub294 Enterprise Edition\uc758 \uc77c\ubd80\ub85c \uc81c\uacf5\ub418\uc9c0\ub9cc \uc774 \uc11c\ube44\uc2a4\ub294 \ubb34\ub8cc\ub85c \uc0ac\uc6a9\ud560 \uc218 \uc788\uc2b5\ub2c8\ub2e4!<\/p>\n<p>\uc774 \uc11c\ube44\uc2a4\ub294 \ub2e4\uc74c\uacfc \uac19\uc740 \uacbd\uc6b0\uc5d0 \uc720\uc6a9\ud569\ub2c8\ub2e4:<\/p>\n<ol>\n<li>\uc77d\uc9c0 \uc54a\uc73c\ub824\uba74 <a href=\"https:\/\/docs.couchbase.com\/server\/current\/n1ql\/n1ql-language-reference\/createindex.html\">\uc778\ub371\uc2a4 \uc0dd\uc131<\/a>\u00a0<a href=\"https:\/\/www.couchbase.com\/blog\/ko\/create-right-index-get-right-performance\/\">\uaddc\uce59<\/a>\ub97c \uc0b4\ud3b4\ubcf4\uace0, \uc774\ub97c \uc774\ud574\ud558\uace0, \uad6c\ud604\ud558\uc5ec \ucffc\ub9ac\/\uc9c8\ubb38\/\uc6cc\ud06c\ub85c\ub4dc\uc5d0 \uc801\ud569\ud55c \uc778\ub371\uc2a4\ub97c \ucc3e\uc544\ubcf4\uc138\uc694.<\/li>\n<li>\u00a0\uce74\uc6b0\uce58\ubca0\uc774\uc2a4 \ucee4\ubba4\ub2c8\ud2f0 \uc5d0\ub514\uc158\uc744 \uacc4\uc18d \uc0ac\uc6a9\ud558\uace0 \uc2f6\uc2b5\ub2c8\ub2e4.<\/li>\n<li>\u00a0\uc0ac\uc6a9 \uc911\uc785\ub2c8\ub2e4.\u00a0<strong>\uad6c\ud615 \uce74\uc6b0\uce58\ubca0\uc774\uc2a4 \ubc84\uc804(\ubc84\uc804 5.5,6.0)<\/strong>\u00a0\ucffc\ub9ac\uc5d0 \uc801\ud569\ud55c \uc778\ub371\uc2a4\ub97c \ub9cc\ub4dc\ub294 \ub370 \ub3c4\uc6c0\uc774 \ud544\uc694\ud569\ub2c8\ub2e4.<\/li>\n<li>\uc778\ub371\uc2a4\uc5d0 \ub300\ud55c \uc870\uc5b8\uc744 \uc0dd\uc131\ud558\uace0 \uc2f6\uc2b5\ub2c8\ub2e4.\u00a0<strong>\ubc84\ud0b7\uc744 \ub9cc\ub4e4\uc9c0 \uc54a\uace0<\/strong> \ub610\ub294 \uc2a4\ud0a4\ub9c8 \ub610\ub294 \ub370\uc774\ud130\ub97c \uc5c5\ub85c\ub4dc\ud569\ub2c8\ub2e4.<\/li>\n<\/ol>\n<h4>\uc0c8\ub85c\uc6b4 \uae30\ub2a5\uc740 \ubb34\uc5c7\uc778\uac00\uc694?<\/h4>\n<p>\uce74\uc6b0\uce58\ubca0\uc774\uc2a4 \uc11c\ubc84 6.5 \uc11c\ubc84\ub97c \ub2e4\uc6b4\ub85c\ub4dc\ud558\uace0 \ucffc\ub9ac \uc6cc\ud06c\ubca4\uce58\uc5d0\uc11c \uc778\ub371\uc2a4 \uc5b4\ub4dc\ubc14\uc774\uc800\ub97c \uc0ac\uc6a9\ud560 \uc218 \uc788\ub294 \uacbd\uc6b0\uc5d0\ub3c4, \uc774 \uc778\ub371\uc2a4 \uc5b4\ub4dc\ubc14\uc774\uc800\ub294 \ucd5c\uc2e0 \ubc84\uc804(\ubcf4\uae30 \uc88b\uc740 UI\ub294 \uc5c6\uc9c0\ub9cc \ub2e4\uc74c\uacfc \uac19\uc740 \uacb0\ud568\uc774 \uc218\uc815\ub41c \ubc84\uc804)\uc785\ub2c8\ub2e4.<\/p>\n<p><span style=\"color: #00ccff\">1. Advise\uac00 \uc870\uc778 \uc791\uc5c5\uc5d0 \ub300\ud55c \ucee4\ubc84\ub9c1 \uc778\ub371\uc2a4\ub97c \uc81c\uacf5\ud558\uc9c0 \ubabb\ud588\uc2b5\ub2c8\ub2e4.<\/span><\/p>\n<p>\uc774 \uac1c\uc120 \uc0ac\ud56d\uc73c\ub85c \ub2e4\uc74c\uacfc \uac19\uc740 \ucffc\ub9ac\ub294<\/p>\n<pre class=\"lang:java decode:true\">ADVISE SELECT t_1.int_field1 , t_1.decimal_field1 , t_1.primary_key_id , t_1.bool_field1 \r\nFROM bucket_01 t_1 INNER JOIN bucket_04 t_4 \r\nON ( t_1.primary_key_id = t_4.primary_key_id ) \r\nINNER JOIN bucket_04 t_5 ON ( t_1.primary_key_id = t_5.primary_key_id );<\/pre>\n<p>\ub97c \uc81c\uacf5\ud558\ub358<\/p>\n<pre class=\"theme:twilight lang:java decode:true\">{\r\n  \"results\": [\r\n    {\r\n      \"#operator\": \"Advise\",\r\n      \"advice\": {\r\n        \"#operator\": \"IndexAdvice\",\r\n        \"adviseinfo\": {\r\n          \"recommended_indexes\": {\r\n            \"covering_indexes\": [\r\n              {\r\n                \"index_statement\": \"CREATE INDEX adv_primary_key_id ON `bucket_04`(`primary_key_id`)\",\r\n                \"keyspace_alias\": \"bucket_04_t_4\"\r\n              },\r\n              {\r\n                \"index_statement\": \"CREATE INDEX adv_primary_key_id ON `bucket_04`()\",\r\n                \"keyspace_alias\": \"bucket_04_t_5\"\r\n              }\r\n            ],\r\n            \"indexes\": [\r\n              {\r\n                \"index_statement\": \"CREATE INDEX adv_primary_key_id ON `bucket_04`(`primary_key_id`)\",\r\n                \"keyspace_alias\": \"bucket_04_t_4\",\r\n                \"recommending_rule\": \"Index keys follow order of predicate types: 9. non-static join predicate.\"\r\n              },\r\n              {\r\n                \"index_statement\": \"CREATE INDEX adv_primary_key_id ON `bucket_01`(`primary_key_id`)\",\r\n                \"keyspace_alias\": \"bucket_01_t_1\",\r\n                \"recommending_rule\": \"Index keys follow order of predicate types: 6. derived join filter as leading key.\"\r\n              }\r\n            ]\r\n          }\r\n        }\r\n      },\r\n      \"query\": \"SELECT t_1.int_field1 , t_1.decimal_field1 , t_1.primary_key_id , t_1.bool_field1\\nFROM bucket_01 t_1\\nINNER JOIN bucket_04 t_4\\nON ( t_1.primary_key_id = t_4.primary_key_id )\\nINNER JOIN bucket_04 t_5\\nON ( t_1.primary_key_id = t_5.primary_key_id );\"\r\n    }\r\n  ]\r\n}<\/pre>\n<p>\uc774 \ucffc\ub9ac\ub294 bucket_01\uc5d0 \ub300\ud55c \ucee4\ubc84\ub9c1 \uc778\ub371\uc2a4 \ucd94\ucc9c\uc744 \uc81c\uacf5\ud558\uc9c0 \ubabb\ud588\uc2b5\ub2c8\ub2e4.<\/p>\n<p>\uc774\uc81c<\/p>\n<pre class=\"theme:son-of-obsidian lang:java decode:true\">{\r\n  \"results\": [\r\n    {\r\n      \"#operator\": \"Advise\",\r\n      \"advice\": {\r\n        \"#operator\": \"IndexAdvice\",\r\n        \"adviseinfo\": {\r\n          \"recommended_indexes\": {\r\n            \"covering_indexes\": [\r\n              {\r\n                \"index_statement\": \"CREATE INDEX adv_primary_key_id_int_field1_bool_field1_decimal_field1 ON `bucket_01`(`primary_key_id`,`int_field1`,`bool_field1`,`decimal_field1`)\",\r\n                \"keyspace_alias\": \"bucket_01_t_1\"\r\n              },\r\n              {\r\n                \"index_statement\": \"CREATE INDEX adv_primary_key_id ON `bucket_04`(`primary_key_id`)\",\r\n                \"keyspace_alias\": \"bucket_04_t_4;bucket_04_t_5\"\r\n              }\r\n            ],\r\n            \"indexes\": [\r\n              {\r\n                \"index_statement\": \"CREATE INDEX adv_primary_key_id ON `bucket_01`(`primary_key_id`)\",\r\n                \"keyspace_alias\": \"bucket_01_t_1\",\r\n                \"recommending_rule\": \"Index keys follow order of predicate types: 6. derived join filter as leading key.\"\r\n              },\r\n              {\r\n                \"index_statement\": \"CREATE INDEX adv_primary_key_id ON `bucket_04`(`primary_key_id`)\",\r\n                \"keyspace_alias\": \"bucket_04_t_4;bucket_04_t_5\",\r\n                \"recommending_rule\": {\r\n                  \"bucket_04_t_4\": \"Index keys follow order of predicate types: 9. non-static join predicate.\",\r\n                  \"bucket_04_t_5\": \"Index keys follow order of predicate types: 9. non-static join predicate.\"\r\n                }\r\n              }\r\n            ]\r\n          }\r\n        }\r\n      },\r\n      \"query\": \"SELECT t_1.int_field1 , t_1.decimal_field1 , t_1.primary_key_id , t_1.bool_field1 FROM bucket_01 t_1 INNER JOIN bucket_04 t_4 ON ( t_1.primary_key_id = t_4.primary_key_id ) INNER JOIN bucket_04 t_5 ON ( t_1.primary_key_id = t_5.primary_key_id );\"\r\n    }\r\n  ]\r\n}<\/pre>\n<p>&nbsp;<\/p>\n<p><span style=\"color: #00ccff\">2. \uc870\uc5b8\uc774 \ub54c\ub54c\ub85c \ube48 \uc778\ub371\uc2a4 \uad8c\uc7a5 \uc0ac\ud56d\uc744 \ubc18\ud658\ud569\ub2c8\ub2e4.<\/span><\/p>\n<p>\ub2e4\uc74c\uacfc \uac19\uc740 \ucffc\ub9ac\uc785\ub2c8\ub2e4:<\/p>\n<pre class=\"lang:java decode:true\">ADVISE SELECT t_1.int_field1 , t_1.decimal_field1 , t_1.primary_key_id , t_1.bool_field1 FROM bucket_01 t_1\r\n LEFT JOIN bucket_05 t_1SiRAdlidCB ON ( t_1.primary_key_id = t_1SiRAdlidCB.primary_key_id ) \r\nLEFT JOIN bucket_010 t_1fLjtGGSnKf ON ( t_1.primary_key_id = t_1fLjtGGSnKf.primary_key_id ) \r\nINNER JOIN bucket_04 t_1GHMwUzdukS ON ( t_1.primary_key_id = t_1GHMwUzdukS.primary_key_id ) \r\nINNER JOIN bucket_04 t_1LjVrlSNfDc ON ( t_1.primary_key_id = t_1LjVrlSNfDc.primary_key_id ) \r\nWHERE ((t_1.primary_key_id IS NOT NULL AND t_1.int_field1 IS NULL)) OR\r\n ((t_1.int_field1 &gt;= 47635891 OR t_1.varchar_field1 IS NOT NULL));<\/pre>\n<p>&nbsp;<\/p>\n<p>\uc81c\uacf5\uc5d0 \uc0ac\uc6a9<\/p>\n<pre class=\"theme:twilight lang:java decode:true\">{\r\n  \"results\": [\r\n    {\r\n      \"#operator\": \"Advise\",\r\n      \"advice\": {\r\n        \"#operator\": \"IndexAdvice\",\r\n        \"adviseinfo\": {\r\n          \"recommended_indexes\": {\r\n            \"covering_indexes\": [\r\n              {\r\n                \"index_statement\": \"CREATE INDEX adv_primary_key_id ON `bucket_05`(`primary_key_id`)\",\r\n                \"keyspace_alias\": \"bucket_05_t_1SiRAdlidCB\"\r\n              },\r\n              {\r\n                \"index_statement\": \"CREATE INDEX adv_primary_key_id ON `bucket_010`(`primary_key_id`)\",\r\n                \"keyspace_alias\": \"bucket_010_t_1fLjtGGSnKf\"\r\n              },\r\n              {\r\n                \"index_statement\": \"CREATE INDEX adv_primary_key_id ON `bucket_04`(`primary_key_id`)\",\r\n                \"keyspace_alias\": \"bucket_04_t_1GHMwUzdukS\"\r\n              },\r\n              {\r\n                \"index_statement\": \"CREATE INDEX adv_primary_key_id ON `bucket_04`()\",\r\n                \"keyspace_alias\": \"bucket_04_t_1LjVrlSNfDc\"\r\n              }\r\n            ],\r\n            \"indexes\": [\r\n              {\r\n                \"index_statement\": \"CREATE INDEX adv_int_field1_primary_key_id ON `bucket_01`(`int_field1`,`primary_key_id`)\",\r\n                \"keyspace_alias\": \"bucket_01_t_1\",\r\n                \"recommending_rule\": \"Index keys follow order of predicate types: 1. Common leading key for disjunction (2. equality\/null\/missing), 7. not null\/not missing\/valued.\"\r\n              },\r\n              {\r\n                \"index_statement\": \"CREATE INDEX adv_varchar_field1 ON `bucket_01`(`varchar_field1`)\",\r\n                \"keyspace_alias\": \"bucket_01_t_1\",\r\n                \"recommending_rule\": \"Index keys follow order of predicate types: 7. not null\/not missing\/valued.\"\r\n              },\r\n              {\r\n                \"index_statement\": \"CREATE INDEX adv_primary_key_id ON `bucket_05`(`primary_key_id`)\",\r\n                \"keyspace_alias\": \"bucket_05_t_1SiRAdlidCB\",\r\n                \"recommending_rule\": \"Index keys follow order of predicate types: 9. non-static join predicate.\"\r\n              },\r\n              {\r\n                \"index_statement\": \"CREATE INDEX adv_primary_key_id ON `bucket_010`(`primary_key_id`)\",\r\n                \"keyspace_alias\": \"bucket_010_t_1fLjtGGSnKf\",\r\n                \"recommending_rule\": \"Index keys follow order of predicate types: 9. non-static join predicate.\"\r\n              },\r\n              {\r\n                \"index_statement\": \"CREATE INDEX adv_primary_key_id ON `bucket_04`(`primary_key_id`)\",\r\n                \"keyspace_alias\": \"bucket_04_t_1GHMwUzdukS\",\r\n                \"recommending_rule\": \"Index keys follow order of predicate types: 9. non-static join predicate.\"\r\n              }\r\n            ]\r\n          }\r\n        }\r\n      },\r\n      \"query\": \"SELECT t_1.int_field1 , t_1.decimal_field1 , t_1.primary_key_id , t_1.bool_field1 FROM bucket_01 t_1 LEFT JOIN bucket_05 t_1SiRAdlidCB ON ( t_1.primary_key_id = t_1SiRAdlidCB.primary_key_id ) LEFT JOIN bucket_010 t_1fLjtGGSnKf ON ( t_1.primary_key_id = t_1fLjtGGSnKf.primary_key_id ) INNER JOIN bucket_04 t_1GHMwUzdukS ON ( t_1.primary_key_id = t_1GHMwUzdukS.primary_key_id ) INNER JOIN bucket_04 t_1LjVrlSNfDc ON ( t_1.primary_key_id = t_1LjVrlSNfDc.primary_key_id ) WHERE ((t_1.primary_key_id IS NOT NULL AND t_1.int_field1 IS NULL)) OR ((t_1.int_field1 &gt;= 47635891 OR t_1.varchar_field1 IS NOT NULL));\"\r\n    }\r\n  ]\r\n}<\/pre>\n<p>\uad8c\uc7a5\ub418\ub294 \ube48 \uc778\ub371\uc2a4\uac00 \ud558\ub098 \uc788\uc73c\uba70, \ud574\ub2f9 \uc778\ub371\uc2a4\uac00 \ucee4\ubc84\ud558\uace0 \uc788\uc9c0\ub9cc \uc220\uc5b4\uc758 \ud544\ub4dc\ub97c \ud3ec\ud568\ud558\uc9c0 \uc54a\ub294\ub2e4\uace0 \ub098\uc640 \uc788\uc2b5\ub2c8\ub2e4.<\/p>\n<p>\uc774\uc81c<\/p>\n<pre class=\"theme:son-of-obsidian lang:java decode:true\">{\r\n  \"results\": [\r\n    {\r\n      \"#operator\": \"Advise\",\r\n      \"advice\": {\r\n        \"#operator\": \"IndexAdvice\",\r\n        \"adviseinfo\": {\r\n          \"recommended_indexes\": {\r\n            \"covering_indexes\": [\r\n              {\r\n                \"index_statement\": \"CREATE INDEX adv_primary_key_id ON `bucket_05`(`primary_key_id`)\",\r\n                \"keyspace_alias\": \"bucket_05_t_1SiRAdlidCB\"\r\n              },\r\n              {\r\n                \"index_statement\": \"CREATE INDEX adv_primary_key_id ON `bucket_010`(`primary_key_id`)\",\r\n                \"keyspace_alias\": \"bucket_010_t_1fLjtGGSnKf\"\r\n              },\r\n              {\r\n                \"index_statement\": \"CREATE INDEX adv_primary_key_id ON `bucket_04`(`primary_key_id`)\",\r\n                \"keyspace_alias\": \"bucket_04_t_1GHMwUzdukS;bucket_04_t_1LjVrlSNfDc\"\r\n              }\r\n            ],\r\n            \"indexes\": [\r\n              {\r\n                \"index_statement\": \"CREATE INDEX adv_primary_key_id ON `bucket_010`(`primary_key_id`)\",\r\n                \"keyspace_alias\": \"bucket_010_t_1fLjtGGSnKf\",\r\n                \"recommending_rule\": \"Index keys follow order of predicate types: 9. non-static join predicate.\"\r\n              },\r\n              {\r\n                \"index_statement\": \"CREATE INDEX adv_primary_key_id ON `bucket_04`(`primary_key_id`)\",\r\n                \"keyspace_alias\": \"bucket_04_t_1GHMwUzdukS;bucket_04_t_1LjVrlSNfDc\",\r\n                \"recommending_rule\": {\r\n                  \"bucket_04_t_1GHMwUzdukS\": \"Index keys follow order of predicate types: 9. non-static join predicate.\",\r\n                  \"bucket_04_t_1LjVrlSNfDc\": \"Index keys follow order of predicate types: 9. non-static join predicate.\"\r\n                }\r\n              },\r\n              {\r\n                \"index_statement\": \"CREATE INDEX adv_int_field1_primary_key_id ON `bucket_01`(`int_field1`,`primary_key_id`)\",\r\n                \"keyspace_alias\": \"bucket_01_t_1\",\r\n                \"recommending_rule\": \"Index keys follow order of predicate types: 1. Common leading key for disjunction (2. equality\/null\/missing), 7. not null\/not missing\/valued.\"\r\n              },\r\n              {\r\n                \"index_statement\": \"CREATE INDEX adv_varchar_field1 ON `bucket_01`(`varchar_field1`)\",\r\n                \"keyspace_alias\": \"bucket_01_t_1\",\r\n                \"recommending_rule\": \"Index keys follow order of predicate types: 7. not null\/not missing\/valued.\"\r\n              },\r\n              {\r\n                \"index_statement\": \"CREATE INDEX adv_primary_key_id ON `bucket_05`(`primary_key_id`)\",\r\n                \"keyspace_alias\": \"bucket_05_t_1SiRAdlidCB\",\r\n                \"recommending_rule\": \"Index keys follow order of predicate types: 9. non-static join predicate.\"\r\n              }\r\n            ]\r\n          }\r\n        }\r\n      },\r\n      \"query\": \"SELECT t_1.int_field1 , t_1.decimal_field1 , t_1.primary_key_id , t_1.bool_field1 FROM bucket_01 t_1 LEFT JOIN bucket_05 t_1SiRAdlidCB ON ( t_1.primary_key_id = t_1SiRAdlidCB.primary_key_id ) LEFT JOIN bucket_010 t_1fLjtGGSnKf ON ( t_1.primary_key_id = t_1fLjtGGSnKf.primary_key_id ) INNER JOIN bucket_04 t_1GHMwUzdukS ON ( t_1.primary_key_id = t_1GHMwUzdukS.primary_key_id ) INNER JOIN bucket_04 t_1LjVrlSNfDc ON ( t_1.primary_key_id = t_1LjVrlSNfDc.primary_key_id ) WHERE ((t_1.primary_key_id IS NOT NULL AND t_1.int_field1 IS NULL)) OR ((t_1.int_field1 &gt;= 47635891 OR t_1.varchar_field1 IS NOT NULL));\"\r\n    }\r\n  ]\r\n}<\/pre>\n<p><span style=\"color: #00ccff\">3. \ud544\ub4dc\uc5d0 desc \uc815\ub82c\uc744 \uc0ac\uc6a9\ud558\uc5ec \ucd94\ucc9c\uc744 \uc81c\uacf5\ud574\uc57c \ud569\ub2c8\ub2e4.<\/span><\/p>\n<p>\ub2e4\uc74c\uacfc \uac19\uc740 \ucffc\ub9ac<\/p>\n<pre class=\"lang:java decode:true\">ADVISE select country from `default` where pro_account=true and country = \"USA\" order by country DESC<\/pre>\n<p>\uc81c\uacf5\uc5d0 \uc0ac\uc6a9<\/p>\n<pre class=\"theme:twilight lang:java decode:true\">{\r\n  &quot;results&quot;: [\r\n    {\r\n      &quot;#operator&quot;: &quot;Advise&quot;,\r\n      &quot;advice&quot;: {\r\n        &quot;#operator&quot;: &quot;IndexAdvice&quot;,\r\n        &quot;adviseinfo&quot;: {\r\n          &quot;recommended_indexes&quot;: {\r\n            &quot;covering_indexes&quot;: [\r\n              {\r\n                &quot;&lt;span style=&quot;color: #ff0000;&quot; data-mce-style=&quot;color: #ff0000;&quot;&gt;index_statement&quot;: &quot;CREATE INDEX adv_pro_account_country ON `default`(`pro_account`,`country`)&quot;,&lt;\/span&gt;\r\n                &quot;keyspace_alias&quot;: &quot;default&quot;\r\n              }\r\n            ],\r\n            &quot;indexes&quot;: [\r\n              {\r\n                &quot;index_statement&quot;: &quot;CREATE INDEX adv_pro_account_country ON `default`(`pro_account`,`country`)&quot;,\r\n                &quot;keyspace_alias&quot;: &quot;default&quot;,\r\n                &quot;recommending_rule&quot;: &quot;Index keys follow order of predicate types: 2. equality\/null\/missing.&quot;\r\n              }\r\n            ]\r\n          }\r\n        }\r\n      },\r\n      &quot;query&quot;: &quot;select country from default where pro_account=true and country = \\&quot;USA\\&quot; order by country DESC&quot;\r\n    }\r\n  ]\r\n}<\/pre>\n<p>&nbsp;<\/p>\n<p><span style=\"color: #000000\">\uc774\uc81c \uc81c\uacf5\ud569\ub2c8\ub2e4:<\/span><\/p>\n<pre class=\"theme:son-of-obsidian lang:java decode:true\">{\r\n  &quot;results&quot;: [\r\n    {\r\n      &quot;#operator&quot;: &quot;Advise&quot;,\r\n      &quot;advice&quot;: {\r\n        &quot;#operator&quot;: &quot;IndexAdvice&quot;,\r\n        &quot;adviseinfo&quot;: {\r\n          &quot;recommended_indexes&quot;: {\r\n            &quot;covering_indexes&quot;: [\r\n              {\r\n                &quot;index_statement&quot;: &quot;CREATE INDEX adv_countryDESC_pro_account ON `default`(`country` DESC,`pro_account`)&quot;,&lt;\/span&gt;\r\n                &quot;keyspace_alias&quot;: &quot;default&quot;\r\n              }\r\n            ],\r\n            &quot;indexes&quot;: [\r\n              {\r\n                &quot;index_statement&quot;: &quot;CREATE INDEX adv_country_pro_account ON `default`(`country`,`pro_account`)&quot;,\r\n                &quot;keyspace_alias&quot;: &quot;default&quot;,\r\n                &quot;recommending_rule&quot;: &quot;Index keys follow order of predicate types: 2. equality\/null\/missing.&quot;\r\n              }\r\n            ]\r\n          }\r\n        }\r\n      },\r\n      &quot;query&quot;: &quot;select country from default where pro_account=true and country = \\&quot;USA\\&quot; order by country DESC&quot;\r\n    }\r\n  ]\r\n}<\/pre>\n<p><span style=\"color: #00ccff\">4. \uc911\ubcf5 \uc778\ub371\uc2a4 \uc815\uc758\uc5d0 \ub300\ud55c \uc815\ubcf4\ub97c \uacb0\ud569\ud558\ub294 \uc778\ub371\uc2a4 \uc5b4\ub4dc\ubc14\uc774\uc800<\/span><\/p>\n<p>\ud558\ub098\uc758 \ucffc\ub9ac\uc5d0 \ub300\ud574 \uc911\ubcf5\ub41c \uc778\ub371\uc2a4 \uc815\uc758\ub97c \uc81c\uac70\ud569\ub2c8\ub2e4.<br \/>\n\uadf8\ub7ec\ub098 \ucd94\ucc9c \uaddc\uce59\uc774 \ub2e4\ub978 \ub2e4\ub978 keyspace_alias\uc5d0 \uc911\ubcf5 \uc778\ub371\uc2a4\uac00 \uc801\uc6a9\ub418\ub294 \uacbd\uc6b0\uac00 \uc788\uc2b5\ub2c8\ub2e4.<\/p>\n<p>\ub2e4\uc74c\uacfc \uac19\uc740 \ucffc\ub9ac\uc785\ub2c8\ub2e4:<\/p>\n<pre class=\"lang:java decode:true\">ADVISE SELECT * \r\nFROM bucket_01 t_1 \r\nLEFT JOIN bucket_05 t_2 ON ( t_1.primary_key_id = t_2.primary_key_id ) \r\nLEFT JOIN bucket_010 t_3 ON ( t_1.primary_key_id = t_3.primary_key_id ) \r\nINNER JOIN bucket_04 t_4 ON ( t_1.primary_key_id = t_4.primary_key_id ) \r\nINNER JOIN bucket_04 t_5 ON ( t_1.primary_key_id = t_5.primary_key_id ) \r\nWHERE ((t_1.primary_key_id IS NOT NULL AND t_1.int_field1 IS NULL)) OR ((t_1.int_field1 &gt;= 47635891 OR t_1.varchar_field1 IS NOT NULL));<\/pre>\n<p>\uc81c\uacf5\uc5d0 \uc0ac\uc6a9<\/p>\n<pre class=\"theme:twilight lang:java decode:true\">{\r\n  \"results\": [\r\n    {\r\n      \"#operator\": \"Advise\",\r\n      \"advice\": {\r\n        \"#operator\": \"IndexAdvice\",\r\n        \"adviseinfo\": {\r\n          \"recommended_indexes\": {\r\n            \"indexes\": [\r\n              {\r\n                \"index_statement\": \"CREATE INDEX adv_primary_key_id ON `bucket_010`(`primary_key_id`)\",\r\n                \"keyspace_alias\": \"bucket_010_t_3\",\r\n                \"recommending_rule\": \"Index keys follow order of predicate types: 9. non-static join predicate.\"\r\n              },\r\n              {\r\n                \"index_statement\": \"CREATE INDEX adv_primary_key_id ON `bucket_04`(`primary_key_id`)\",\r\n                \"keyspace_alias\": \"bucket_04_t_4\",\r\n                \"recommending_rule\": \"Index keys follow order of predicate types: 9. non-static join predicate.\"\r\n              },\r\n              {\r\n                \"index_statement\": \"CREATE INDEX adv_int_field1_primary_key_id ON `bucket_01`(`int_field1`,`primary_key_id`)\",\r\n                \"keyspace_alias\": \"bucket_01_t_1\",\r\n                \"recommending_rule\": \"Index keys follow order of predicate types: 1. Common leading key for disjunction (2. equality\/null\/missing), 7. not null\/not missing\/valued.\"\r\n              },\r\n              {\r\n                \"index_statement\": \"CREATE INDEX adv_varchar_field1 ON `bucket_01`(`varchar_field1`)\",\r\n                \"keyspace_alias\": \"bucket_01_t_1\",\r\n                \"recommending_rule\": \"Index keys follow order of predicate types: 7. not null\/not missing\/valued.\"\r\n              },\r\n              {\r\n                \"index_statement\": \"CREATE INDEX adv_primary_key_id ON `bucket_05`(`primary_key_id`)\",\r\n                \"keyspace_alias\": \"bucket_05_t_2\",\r\n                \"recommending_rule\": \"Index keys follow order of predicate types: 9. non-static join predicate.\"\r\n              }\r\n            ]\r\n          }\r\n        }\r\n      },\r\n      \"query\": \"SELECT * FROM bucket_01 t_1 LEFT JOIN bucket_05 t_2 ON ( t_1.primary_key_id = t_2.primary_key_id ) LEFT JOIN bucket_010 t_3 ON ( t_1.primary_key_id = t_3.primary_key_id ) INNER JOIN bucket_04 t_4 ON ( t_1.primary_key_id = t_4.primary_key_id ) INNER JOIN bucket_04 t_5 ON ( t_1.primary_key_id = t_5.primary_key_id ) WHERE ((t_1.primary_key_id IS NOT NULL AND t_1.int_field1 IS NULL)) OR ((t_1.int_field1 &gt;= 47635891 OR t_1.varchar_field1 IS NOT NULL));\"\r\n    }\r\n  ]\r\n}<\/pre>\n<p>\uc774\uc81c \uc81c\uacf5\ud569\ub2c8\ub2e4:<\/p>\n<pre class=\"theme:son-of-obsidian lang:java decode:true\">{\r\n  &quot;results&quot;: [\r\n    {\r\n      &quot;#operator&quot;: &quot;Advise&quot;,\r\n      &quot;advice&quot;: {\r\n        &quot;#operator&quot;: &quot;IndexAdvice&quot;,\r\n        &quot;adviseinfo&quot;: {\r\n          &quot;recommended_indexes&quot;: {\r\n            &quot;indexes&quot;: [\r\n              {\r\n                &quot;index_statement&quot;: &quot;CREATE INDEX adv_int_field1_primary_key_id ON `bucket_01`(`int_field1`,`primary_key_id`)&quot;,\r\n                &quot;keyspace_alias&quot;: &quot;bucket_01_t_1&quot;,\r\n                &quot;recommending_rule&quot;: &quot;Index keys follow order of predicate types: 1. Common leading key for disjunction (2. equality\/null\/missing), 7. not null\/not missing\/valued.&quot;\r\n              },\r\n              {\r\n                &quot;index_statement&quot;: &quot;CREATE INDEX adv_varchar_field1 ON `bucket_01`(`varchar_field1`)&quot;,\r\n                &quot;keyspace_alias&quot;: &quot;bucket_01_t_1&quot;,\r\n                &quot;recommending_rule&quot;: &quot;Index keys follow order of predicate types: 7. not null\/not missing\/valued.&quot;\r\n              },\r\n              {\r\n                &quot;index_statement&quot;: &quot;CREATE INDEX adv_primary_key_id ON `bucket_05`(`primary_key_id`)&quot;,\r\n                &quot;keyspace_alias&quot;: &quot;bucket_05_t_2&quot;,\r\n                &quot;recommending_rule&quot;: &quot;Index keys follow order of predicate types: 9. non-static join predicate.&quot;\r\n              },\r\n              {\r\n                &quot;index_statement&quot;: &quot;CREATE INDEX adv_primary_key_id ON `bucket_010`(`primary_key_id`)&quot;,\r\n                &quot;keyspace_alias&quot;: &quot;bucket_010_t_3&quot;,\r\n                &quot;recommending_rule&quot;: &quot;Index keys follow order of predicate types: 9. non-static join predicate.&quot;\r\n              },\r\n              {\r\n                &quot;index_statement&quot;: &quot;CREATE INDEX adv_primary_key_id ON `bucket_04`(`primary_key_id`)&quot;,\r\n                &quot;keyspace_alias&quot;: &lt;span style=&quot;color: #0000ff;&quot; data-mce-style=&quot;color: #0000ff;&quot;&gt;&quot;bucket_04_t_4;bucket_04_t_5&quot;&lt;\/span&gt;,\r\n                &quot;recommending_rule&quot;: {\r\n                  &quot;bucket_04_t_4&quot;: &quot;Index keys follow order of predicate types: 9. non-static join predicate.&quot;,\r\n                  &quot;bucket_04_t_5&quot;: &quot;Index keys follow order of predicate types: 9. non-static join predicate.&quot;\r\n                }\r\n              }\r\n            ]\r\n          }\r\n        }\r\n      },\r\n      &quot;query&quot;: &quot;SELECT * \\nFROM bucket_01 t_1 \\nLEFT JOIN bucket_05 t_2 ON ( t_1.primary_key_id = t_2.primary_key_id ) \\nLEFT JOIN bucket_010 t_3 ON ( t_1.primary_key_id = t_3.primary_key_id ) \\nINNER JOIN bucket_04 t_4 ON ( t_1.primary_key_id = t_4.primary_key_id ) \\nINNER JOIN bucket_04 t_5 ON ( t_1.primary_key_id = t_5.primary_key_id ) \\nWHERE ((t_1.primary_key_id IS NOT NULL AND t_1.int_field1 IS NULL)) OR ((t_1.int_field1 &gt;= 47635891 OR t_1.varchar_field1 IS NOT NULL));&quot;\r\n    }\r\n  ]\r\n}<\/pre>\n<p><span style=\"color: #00ccff\">5. \uc778\ub371\uc2a4 \uc5b4\ub4dc\ubc14\uc774\uc800\uac00 \ub124\uc2a4\ud2b8\uac00 \uc544\ub2cc \ucffc\ub9ac\uc5d0 \ub300\ud574 \uc798\ubabb\ub41c \uc778\ub371\uc2a4 \ucd94\ucc9c\uc744 \ubc18\ud658\ud558\ub294 \uacbd\uc6b0<\/span><\/p>\n<p>\ub2e4\uc74c\uacfc \uac19\uc740 \ucffc\ub9ac\uc785\ub2c8\ub2e4:<\/p>\n<pre class=\"lang:java decode:true\">advise SELECT meta(t).id _id,t.type,branch.branchId FROM test AS t UNNEST t.branches AS branch\r\nWHERE t.type is valued AND branch.branchId &gt; (t.currentBranch-2) \r\norder by branch.lastUpdateOn<\/pre>\n<p>\uae30\ubd80\ud558\ub294 \ub370 \uc0ac\uc6a9\ub429\ub2c8\ub2e4:<\/p>\n<pre class=\"theme:twilight lang:java decode:true\">{\r\n  &quot;results&quot;: [\r\n    {\r\n      &quot;#operator&quot;: &quot;Advise&quot;,\r\n      &quot;advice&quot;: {\r\n        &quot;#operator&quot;: &quot;IndexAdvice&quot;,\r\n        &quot;adviseinfo&quot;: {\r\n          &quot;recommended_indexes&quot;: {\r\n            &quot;indexes&quot;: [\r\n              {\r\n                &quot;index_statement&quot;: &quot;CREATE INDEX adv_ALL_branches_type_2 ON `test`(&lt;span style=&quot;color: #ff0000;&quot; data-mce-style=&quot;color: #ff0000;&quot;&gt;ALL `branches`,`type`,2&lt;\/span&gt;)&quot;,\r\n                &quot;keyspace_alias&quot;: &quot;test_t&quot;,\r\n                &quot;recommending_rule&quot;: &quot;Index keys follow order of predicate types: 1. leading array index for unnest, 7. not null\/not missing\/valued, 9. non-static join predicate.&quot;\r\n              }\r\n            ]\r\n          }\r\n        }\r\n      },\r\n      &quot;query&quot;: &quot;SELECT meta(t).id _id,t.type,branch.branchId FROM test AS t UNNEST t.branches AS branch WHERE t.type is valued AND branch.branchId &gt; (t.currentBranch-2) order by branch.lastUpdateOn&quot;\r\n    }\r\n  ]\r\n}<\/pre>\n<p>&nbsp;<\/p>\n<p>\uc774\uc81c<\/p>\n<pre class=\"theme:son-of-obsidian lang:java decode:true\">{\r\n  &quot;results&quot;: [\r\n    {\r\n      &quot;#operator&quot;: &quot;Advise&quot;,\r\n      &quot;advice&quot;: {\r\n        &quot;#operator&quot;: &quot;IndexAdvice&quot;,\r\n        &quot;adviseinfo&quot;: {\r\n          &quot;recommended_indexes&quot;: {\r\n            &quot;indexes&quot;: [\r\n              {\r\n                &quot;index_statement&quot;: &quot;CREATE INDEX adv_ALL_branches_branchId_type ON `test`(&lt;span style=&quot;color: #0000ff;&quot; data-mce-style=&quot;color: #0000ff;&quot;&gt;ALL ARRAY `branch`.`branchId` FOR branch IN `branches` END,`type`&lt;\/span&gt;)&quot;,\r\n                &quot;keyspace_alias&quot;: &quot;test_t&quot;,\r\n                &quot;recommending_rule&quot;: &quot;Index keys follow order of predicate types: 1. leading array index for unnest, 7. not null\/not missing\/valued.&quot;\r\n              }\r\n            ]\r\n          }\r\n        }\r\n      },\r\n      &quot;query&quot;: &quot;SELECT meta(t).id _id,t.type,branch.branchId\\nFROM test AS t\\nUNNEST t.branches AS branch\\nWHERE t.type is valued AND branch.branchId &gt; (t.currentBranch-2) order by branch.lastUpdateOn&quot;\r\n    }\r\n  ]\r\n}<\/pre>\n<p>\uc0ac\uc6a9\ud574 \ubcf4\uc2dc\uace0 \uc778\ub371\uc2a4 \uc5b4\ub4dc\ubc14\uc774\uc800 \uc11c\ube44\uc2a4\uc5d0\uc11c \ucd94\ucc9c\ud558\ub294 \uc778\ub371\uc2a4\uc5d0 \ubb38\uc81c\uac00 \uc788\ub294 \uacbd\uc6b0 \uc774 \ube14\ub85c\uadf8\uc5d0 \ub313\uae00\ub85c \ucd94\uac00\ud560 \uc218 \uc788\uc2b5\ub2c8\ub2e4.<\/p>\n<h4>\uc778\ub371\uc2a4 \uc5b4\ub4dc\ubc14\uc774\uc800 \uae30\ub2a5\uc5d0 \ub300\ud574 \uc790\uc138\ud788 \uc54c\uc544\ubcf4\uc138\uc694:<\/h4>\n<p><a href=\"https:\/\/www.couchbase.com\/blog\/ko\/index-advisor-service\/\">https:\/\/www.couchbase.com\/blog\/index-advisor-service\/<\/a><\/p>\n<p><a href=\"https:\/\/www.couchbase.com\/blog\/ko\/index-advisor-service-for-couchbase-n1qlfeb-refresh\/\">https:\/\/www.couchbase.com\/blog\/index-advisor-service-for-couchbase-n1qlfeb-refresh\/<\/a><\/p>\n<p><a href=\"https:\/\/www.couchbase.com\/blog\/ko\/index-advisor-service-for-n1ql-march-refresh\/\">https:\/\/www.couchbase.com\/blog\/index-advisor-service-for-n1ql-march-refresh\/<\/a><\/p>\n<p><a href=\"https:\/\/www.couchbase.com\/blog\/ko\/n1ql-index-advisor-improve-query-performance-and-productivity\/\">https:\/\/www.couchbase.com\/blog\/n1ql-index-advisor-improve-query-performance-and-productivity\/<\/a><\/p>\n<p><a href=\"https:\/\/www.couchbase.com\/blog\/ko\/index-advisor-for-query-workload\/\">https:\/\/www.couchbase.com\/blog\/index-advisor-for-query-workload\/<\/a><\/p>\n<p><a href=\"https:\/\/docs.couchbase.com\/server\/6.5\/n1ql\/n1ql-language-reference\/advise.html\">https:\/\/docs.couchbase.com\/server\/6.5\/n1ql\/n1ql-language-reference\/advise.html<\/a><\/p>\n<p><a href=\"https:\/\/docs.couchbase.com\/server\/6.5\/n1ql\/n1ql-language-reference\/advisor.html\">https:\/\/docs.couchbase.com\/server\/6.5\/n1ql\/n1ql-language-reference\/advisor.html<\/a><\/p>\n<p><a href=\"https:\/\/docs.couchbase.com\/server\/6.5\/tools\/query-workbench.html#index-advisor\">https:\/\/docs.couchbase.com\/server\/6.5\/tools\/query-workbench.html#index-advisor<\/a><\/p>\n<h4><\/h4>","protected":false},"excerpt":{"rendered":"<p>This is our June drop for Index Advisor service for N1QL after fixing some of the bugs that were found after our last refresh in May. We plan to keep improvising the Index Advisor service(What is it?). The fixes in [&hellip;]<\/p>","protected":false},"author":50908,"featured_media":7971,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"inline_featured_image":false,"footnotes":""},"categories":[2225,1816,2453,1812],"tags":[1245,1695,2439,2445],"ppma_author":[9099],"class_list":["post-8790","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-cloud","category-couchbase-server","category-global-secondary-index","category-n1ql-query","tag-cloud","tag-gsi","tag-index-advisor","tag-query-optimization"],"acf":[],"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v25.8 (Yoast SEO v25.8) - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>Index Advisor Service for N1QL (June refresh) - The Couchbase Blog<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.couchbase.com\/blog\/ko\/index-advisor-service-for-n1ql-june-refresh\/\" \/>\n<meta property=\"og:locale\" content=\"ko_KR\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Index Advisor Service for N1QL (June refresh)\" \/>\n<meta property=\"og:description\" content=\"This is our June drop for Index Advisor service for N1QL after fixing some of the bugs that were found after our last refresh in May. We plan to keep improvising the Index Advisor service(What is it?). The fixes in [&hellip;]\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.couchbase.com\/blog\/ko\/index-advisor-service-for-n1ql-june-refresh\/\" \/>\n<meta property=\"og:site_name\" content=\"The Couchbase Blog\" \/>\n<meta property=\"article:published_time\" content=\"2020-06-15T18:10:36+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2025-06-14T06:42:36+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2019\/12\/ZgEfnw1X_400x400.png\" \/>\n\t<meta property=\"og:image:width\" content=\"400\" \/>\n\t<meta property=\"og:image:height\" content=\"400\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/png\" \/>\n<meta name=\"author\" content=\"Kamini Jagtiani\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Kamini Jagtiani\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"9\ubd84\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/index-advisor-service-for-n1ql-june-refresh\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/index-advisor-service-for-n1ql-june-refresh\/\"},\"author\":{\"name\":\"Kamini Jagtiani\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/#\/schema\/person\/f99c5767a877147f9cf658230bc2473b\"},\"headline\":\"Index Advisor Service for N1QL (June refresh)\",\"datePublished\":\"2020-06-15T18:10:36+00:00\",\"dateModified\":\"2025-06-14T06:42:36+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/index-advisor-service-for-n1ql-june-refresh\/\"},\"wordCount\":479,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/#organization\"},\"image\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/index-advisor-service-for-n1ql-june-refresh\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2019\/12\/ZgEfnw1X_400x400.png\",\"keywords\":[\"cloud\",\"GSI\",\"Index Advisor\",\"Query optimization\"],\"articleSection\":[\"Couchbase Capella\",\"Couchbase Server\",\"Global Secondary Index\",\"SQL++ \/ N1QL Query\"],\"inLanguage\":\"ko-KR\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/www.couchbase.com\/blog\/index-advisor-service-for-n1ql-june-refresh\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/index-advisor-service-for-n1ql-june-refresh\/\",\"url\":\"https:\/\/www.couchbase.com\/blog\/index-advisor-service-for-n1ql-june-refresh\/\",\"name\":\"Index Advisor Service for N1QL (June refresh) - The Couchbase Blog\",\"isPartOf\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/index-advisor-service-for-n1ql-june-refresh\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/index-advisor-service-for-n1ql-june-refresh\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2019\/12\/ZgEfnw1X_400x400.png\",\"datePublished\":\"2020-06-15T18:10:36+00:00\",\"dateModified\":\"2025-06-14T06:42:36+00:00\",\"breadcrumb\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/index-advisor-service-for-n1ql-june-refresh\/#breadcrumb\"},\"inLanguage\":\"ko-KR\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/www.couchbase.com\/blog\/index-advisor-service-for-n1ql-june-refresh\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"ko-KR\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/index-advisor-service-for-n1ql-june-refresh\/#primaryimage\",\"url\":\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2019\/12\/ZgEfnw1X_400x400.png\",\"contentUrl\":\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2019\/12\/ZgEfnw1X_400x400.png\",\"width\":400,\"height\":400},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/index-advisor-service-for-n1ql-june-refresh\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/www.couchbase.com\/blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Index Advisor Service for N1QL (June refresh)\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/#website\",\"url\":\"https:\/\/www.couchbase.com\/blog\/\",\"name\":\"The Couchbase Blog\",\"description\":\"Couchbase, the NoSQL Database\",\"publisher\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/www.couchbase.com\/blog\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"ko-KR\"},{\"@type\":\"Organization\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/#organization\",\"name\":\"The Couchbase Blog\",\"url\":\"https:\/\/www.couchbase.com\/blog\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"ko-KR\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/#\/schema\/logo\/image\/\",\"url\":\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/2023\/04\/admin-logo.png\",\"contentUrl\":\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/2023\/04\/admin-logo.png\",\"width\":218,\"height\":34,\"caption\":\"The Couchbase Blog\"},\"image\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/#\/schema\/logo\/image\/\"}},{\"@type\":\"Person\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/#\/schema\/person\/f99c5767a877147f9cf658230bc2473b\",\"name\":\"Kamini Jagtiani\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"ko-KR\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/#\/schema\/person\/image\/257695296726c224fc7f0e85b30c9129\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/546f9f69203064f77430f14922d59be33e3f0ea674078a793fc813dd40310c5c?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/546f9f69203064f77430f14922d59be33e3f0ea674078a793fc813dd40310c5c?s=96&d=mm&r=g\",\"caption\":\"Kamini Jagtiani\"},\"description\":\"Kamini Jagtiani is a Senior Engineering Manager for the Query Team at Couchbase R&amp;D. Before Couchbase, Kamini was 7 years at Futurewei as Kernel Architect\/Manager and 13 years at IBM Informix as Software Engineer. Kamini has a Bachelors's degree in Computer Science and Engineering from Bombay University, India and holds 5 US patents.\",\"url\":\"https:\/\/www.couchbase.com\/blog\/ko\/author\/kaminijagtiani\/\"}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"Index Advisor Service for N1QL (June refresh) - The Couchbase Blog","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/www.couchbase.com\/blog\/ko\/index-advisor-service-for-n1ql-june-refresh\/","og_locale":"ko_KR","og_type":"article","og_title":"Index Advisor Service for N1QL (June refresh)","og_description":"This is our June drop for Index Advisor service for N1QL after fixing some of the bugs that were found after our last refresh in May. We plan to keep improvising the Index Advisor service(What is it?). The fixes in [&hellip;]","og_url":"https:\/\/www.couchbase.com\/blog\/ko\/index-advisor-service-for-n1ql-june-refresh\/","og_site_name":"The Couchbase Blog","article_published_time":"2020-06-15T18:10:36+00:00","article_modified_time":"2025-06-14T06:42:36+00:00","og_image":[{"width":400,"height":400,"url":"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2019\/12\/ZgEfnw1X_400x400.png","type":"image\/png"}],"author":"Kamini Jagtiani","twitter_card":"summary_large_image","twitter_misc":{"Written by":"Kamini Jagtiani","Est. reading time":"9\ubd84"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.couchbase.com\/blog\/index-advisor-service-for-n1ql-june-refresh\/#article","isPartOf":{"@id":"https:\/\/www.couchbase.com\/blog\/index-advisor-service-for-n1ql-june-refresh\/"},"author":{"name":"Kamini Jagtiani","@id":"https:\/\/www.couchbase.com\/blog\/#\/schema\/person\/f99c5767a877147f9cf658230bc2473b"},"headline":"Index Advisor Service for N1QL (June refresh)","datePublished":"2020-06-15T18:10:36+00:00","dateModified":"2025-06-14T06:42:36+00:00","mainEntityOfPage":{"@id":"https:\/\/www.couchbase.com\/blog\/index-advisor-service-for-n1ql-june-refresh\/"},"wordCount":479,"commentCount":0,"publisher":{"@id":"https:\/\/www.couchbase.com\/blog\/#organization"},"image":{"@id":"https:\/\/www.couchbase.com\/blog\/index-advisor-service-for-n1ql-june-refresh\/#primaryimage"},"thumbnailUrl":"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2019\/12\/ZgEfnw1X_400x400.png","keywords":["cloud","GSI","Index Advisor","Query optimization"],"articleSection":["Couchbase Capella","Couchbase Server","Global Secondary Index","SQL++ \/ N1QL Query"],"inLanguage":"ko-KR","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/www.couchbase.com\/blog\/index-advisor-service-for-n1ql-june-refresh\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/www.couchbase.com\/blog\/index-advisor-service-for-n1ql-june-refresh\/","url":"https:\/\/www.couchbase.com\/blog\/index-advisor-service-for-n1ql-june-refresh\/","name":"Index Advisor Service for N1QL (June refresh) - The Couchbase Blog","isPartOf":{"@id":"https:\/\/www.couchbase.com\/blog\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.couchbase.com\/blog\/index-advisor-service-for-n1ql-june-refresh\/#primaryimage"},"image":{"@id":"https:\/\/www.couchbase.com\/blog\/index-advisor-service-for-n1ql-june-refresh\/#primaryimage"},"thumbnailUrl":"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2019\/12\/ZgEfnw1X_400x400.png","datePublished":"2020-06-15T18:10:36+00:00","dateModified":"2025-06-14T06:42:36+00:00","breadcrumb":{"@id":"https:\/\/www.couchbase.com\/blog\/index-advisor-service-for-n1ql-june-refresh\/#breadcrumb"},"inLanguage":"ko-KR","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.couchbase.com\/blog\/index-advisor-service-for-n1ql-june-refresh\/"]}]},{"@type":"ImageObject","inLanguage":"ko-KR","@id":"https:\/\/www.couchbase.com\/blog\/index-advisor-service-for-n1ql-june-refresh\/#primaryimage","url":"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2019\/12\/ZgEfnw1X_400x400.png","contentUrl":"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2019\/12\/ZgEfnw1X_400x400.png","width":400,"height":400},{"@type":"BreadcrumbList","@id":"https:\/\/www.couchbase.com\/blog\/index-advisor-service-for-n1ql-june-refresh\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.couchbase.com\/blog\/"},{"@type":"ListItem","position":2,"name":"Index Advisor Service for N1QL (June refresh)"}]},{"@type":"WebSite","@id":"https:\/\/www.couchbase.com\/blog\/#website","url":"https:\/\/www.couchbase.com\/blog\/","name":"\uce74\uc6b0\uce58\ubca0\uc774\uc2a4 \ube14\ub85c\uadf8","description":"NoSQL \ub370\uc774\ud130\ubca0\uc774\uc2a4, Couchbase","publisher":{"@id":"https:\/\/www.couchbase.com\/blog\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.couchbase.com\/blog\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"ko-KR"},{"@type":"Organization","@id":"https:\/\/www.couchbase.com\/blog\/#organization","name":"\uce74\uc6b0\uce58\ubca0\uc774\uc2a4 \ube14\ub85c\uadf8","url":"https:\/\/www.couchbase.com\/blog\/","logo":{"@type":"ImageObject","inLanguage":"ko-KR","@id":"https:\/\/www.couchbase.com\/blog\/#\/schema\/logo\/image\/","url":"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/2023\/04\/admin-logo.png","contentUrl":"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/2023\/04\/admin-logo.png","width":218,"height":34,"caption":"The Couchbase Blog"},"image":{"@id":"https:\/\/www.couchbase.com\/blog\/#\/schema\/logo\/image\/"}},{"@type":"Person","@id":"https:\/\/www.couchbase.com\/blog\/#\/schema\/person\/f99c5767a877147f9cf658230bc2473b","name":"\uce74\ubbf8\ub2c8 \uc790\uadf8\ud2f0\uc544\ub2c8","image":{"@type":"ImageObject","inLanguage":"ko-KR","@id":"https:\/\/www.couchbase.com\/blog\/#\/schema\/person\/image\/257695296726c224fc7f0e85b30c9129","url":"https:\/\/secure.gravatar.com\/avatar\/546f9f69203064f77430f14922d59be33e3f0ea674078a793fc813dd40310c5c?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/546f9f69203064f77430f14922d59be33e3f0ea674078a793fc813dd40310c5c?s=96&d=mm&r=g","caption":"Kamini Jagtiani"},"description":"\uce74\ubbf8\ub2c8 \uc790\uadf8\ud2f0\uc544\ub2c8\ub294 \uce74\uc6b0\uce58\ubca0\uc774\uc2a4 R&amp;D\uc758 \ucffc\ub9ac\ud300 \uc218\uc11d \uc5d4\uc9c0\ub2c8\uc5b4\ub9c1 \ub9e4\ub2c8\uc800\uc785\ub2c8\ub2e4. Couchbase\uc5d0 \uc785\uc0ac\ud558\uae30 \uc804\uc5d0\ub294 Futurewei\uc5d0\uc11c \ucee4\ub110 \uc544\ud0a4\ud14d\ud2b8\/\uad00\ub9ac\uc790\ub85c 7\ub144, IBM Informix\uc5d0\uc11c \uc18c\ud504\ud2b8\uc6e8\uc5b4 \uc5d4\uc9c0\ub2c8\uc5b4\ub85c 13\ub144 \ub3d9\uc548 \uadfc\ubb34\ud588\uc2b5\ub2c8\ub2e4. \uce74\ubbf8\ub2c8\ub294 \uc778\ub3c4 \ubd04\ubca0\uc774 \ub300\ud559\uad50\uc5d0\uc11c \ucef4\ud4e8\ud130 \uacfc\ud559 \ubc0f \uacf5\ud559 \ud559\uc0ac \ud559\uc704\ub97c \ubc1b\uc558\uc73c\uba70 5\uac1c\uc758 \ubbf8\uad6d \ud2b9\ud5c8\ub97c \ubcf4\uc720\ud558\uace0 \uc788\uc2b5\ub2c8\ub2e4.","url":"https:\/\/www.couchbase.com\/blog\/ko\/author\/kaminijagtiani\/"}]}},"authors":[{"term_id":9099,"user_id":50908,"is_guest":0,"slug":"kaminijagtiani","display_name":"Kamini Jagtiani","avatar_url":"https:\/\/secure.gravatar.com\/avatar\/546f9f69203064f77430f14922d59be33e3f0ea674078a793fc813dd40310c5c?s=96&d=mm&r=g","author_category":"","last_name":"Jagtiani","first_name":"Kamini","job_title":"","user_url":"","description":"\uce74\ubbf8\ub2c8 \uc790\uadf8\ud2f0\uc544\ub2c8\ub294 \uce74\uc6b0\uce58\ubca0\uc774\uc2a4 R&amp;D\uc758 \ucffc\ub9ac\ud300 \uc218\uc11d \uc5d4\uc9c0\ub2c8\uc5b4\ub9c1 \ub9e4\ub2c8\uc800\uc785\ub2c8\ub2e4. Couchbase\uc5d0 \uc785\uc0ac\ud558\uae30 \uc804\uc5d0\ub294 Futurewei\uc5d0\uc11c \ucee4\ub110 \uc544\ud0a4\ud14d\ud2b8\/\uad00\ub9ac\uc790\ub85c 7\ub144, IBM Informix\uc5d0\uc11c \uc18c\ud504\ud2b8\uc6e8\uc5b4 \uc5d4\uc9c0\ub2c8\uc5b4\ub85c 13\ub144 \ub3d9\uc548 \uadfc\ubb34\ud588\uc2b5\ub2c8\ub2e4. \uce74\ubbf8\ub2c8\ub294 \uc778\ub3c4 \ubd04\ubca0\uc774 \ub300\ud559\uad50\uc5d0\uc11c \ucef4\ud4e8\ud130 \uacfc\ud559 \ubc0f \uacf5\ud559 \ud559\uc0ac \ud559\uc704\ub97c \ubc1b\uc558\uc73c\uba70 5\uac1c\uc758 \ubbf8\uad6d \ud2b9\ud5c8\ub97c \ubcf4\uc720\ud558\uace0 \uc788\uc2b5\ub2c8\ub2e4."}],"_links":{"self":[{"href":"https:\/\/www.couchbase.com\/blog\/ko\/wp-json\/wp\/v2\/posts\/8790","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.couchbase.com\/blog\/ko\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.couchbase.com\/blog\/ko\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/ko\/wp-json\/wp\/v2\/users\/50908"}],"replies":[{"embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/ko\/wp-json\/wp\/v2\/comments?post=8790"}],"version-history":[{"count":0,"href":"https:\/\/www.couchbase.com\/blog\/ko\/wp-json\/wp\/v2\/posts\/8790\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/ko\/wp-json\/wp\/v2\/media\/7971"}],"wp:attachment":[{"href":"https:\/\/www.couchbase.com\/blog\/ko\/wp-json\/wp\/v2\/media?parent=8790"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/ko\/wp-json\/wp\/v2\/categories?post=8790"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/ko\/wp-json\/wp\/v2\/tags?post=8790"},{"taxonomy":"author","embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/ko\/wp-json\/wp\/v2\/ppma_author?post=8790"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}