{"id":7940,"date":"2019-12-26T10:54:55","date_gmt":"2019-12-26T18:54:55","guid":{"rendered":"https:\/\/www.couchbase.com\/blog\/?p=7940"},"modified":"2025-06-13T17:21:52","modified_gmt":"2025-06-14T00:21:52","slug":"index-advisor-service","status":"publish","type":"post","link":"https:\/\/www.couchbase.com\/blog\/es\/index-advisor-service\/","title":{"rendered":"Index Advisor Service para Couchbase N1QL(SQL para JSON)"},"content":{"rendered":"<p><span style=\"color: #000000\">Nos complace anunciar el lanzamiento de :<\/span><\/p>\n<h3><span style=\"color: #993300\"> Servicio Couchbase Index Advisor<\/span><\/h3>\n<h3><a href=\"https:\/\/index-advisor.couchbase.com\">https:\/\/index-advisor.couchbase.com<\/a><\/h3>\n<h4>\u00bfOtro servicio m\u00e1s? \u00bfPor qu\u00e9?<\/h4>\n<p>Hace unos a\u00f1os lanzamos N1QL (SQL para JSON) para que pudieras utilizar SQL para recuperar y manipular datos JSON. Pero a menos que se creen buenos \u00edndices, las consultas no funcionan tan bien. \u00bfC\u00f3mo saber si el \u00edndice creado es lo suficientemente bueno para nuestro motor de consultas? As\u00ed que decidimos poner todas las reglas que hacen un buen \u00edndice. Pero eso implicaba leer demasiado. As\u00ed que vamos a ir un paso m\u00e1s all\u00e1 para darte m\u00e1s poder. Ahora lanzamos un servicio -<strong>Asesor de \u00edndices<\/strong>-que acepte una consulta y ofrezca una recomendaci\u00f3n de \u00edndice que cumpla con las expectativas de nuestro motor de consulta-todo sin descargar el \u00faltimo servidor Couchbase.<\/p>\n<h4>\u00bfPara qui\u00e9n?<\/h4>\n<p>Este servicio proporcionar\u00e1 recomendaciones sobre \u00edndices para ayudar a los administradores de bases de datos, desarrolladores y arquitectos a optimizar el rendimiento de las consultas y cumplir los acuerdos de nivel de servicio.<\/p>\n<p>Index Advisor se lanza como parte de Couchbase Server 6.5. Si has descargado esa versi\u00f3n, entonces tienes todo (y m\u00e1s) de lo que proporciona este servicio.<\/p>\n<h4>\u00bfCu\u00e1ndo utilizar este servicio?<\/h4>\n<p>Si t\u00fa:<\/p>\n<ol>\n<li>Quiere evitar leer el <a href=\"https:\/\/docs.couchbase.com\/server\/current\/n1ql\/n1ql-language-reference\/createindex.html\">creaci\u00f3n de \u00edndices<\/a> <a href=\"https:\/\/www.couchbase.com\/blog\/es\/create-right-index-get-right-performance\/\">normas<\/a>Compr\u00e9ndalos y apl\u00edquelos para encontrar los \u00edndices adecuados para su consulta\/consultas\/carga de trabajo.<\/li>\n<li>\u00a0A\u00fan no desea descargar la \u00faltima versi\u00f3n del servidor Couchbase 6.5.<\/li>\n<li>\u00a0\u00bfEst\u00e1 utilizando un <strong>versi\u00f3n anterior de Couchbase<\/strong> y necesitas ayuda para crear los \u00edndices adecuados para tus consultas.<\/li>\n<li>Desea generar consejos para los \u00edndices <strong>sin crear un cubo<\/strong> o cargar el esquema o los datos.<\/li>\n<\/ol>\n<h4>Antecedentes:<\/h4>\n<p>N1QL es el SQL para datos y metadatos JSON. Cada consulta escrita en N1QL tiene un plan de consulta preparado por el motor de consulta N1QL. El rendimiento y la eficiencia de una consulta dependen de su plan. La creaci\u00f3n de \u00edndices correctos para los datos ayuda en la selecci\u00f3n de aquellos \u00edndices que pueden recuperar el conjunto de resultados de la manera m\u00e1s eficiente. Aunque el documento JSON en s\u00ed no tiene esquema, el \u00edndice necesita tener un esquema.<\/p>\n<p>Por ejemplo, \u00edndice <span style=\"color: #3366ff\">ix1(campo1,campo2)<\/span> es diferente del \u00edndice <span style=\"color: #993366\">ix2(campo2,campo1)<\/span>.<\/p>\n<p>Por lo tanto, no s\u00f3lo son importantes los campos que seleccionamos para un \u00edndice, sino tambi\u00e9n el orden en que est\u00e1n presentes en un \u00edndice. (Del \u00edndice FTS hablaremos en otro blog).<\/p>\n<h4>La vida de una consulta:<\/h4>\n<p><img decoding=\"async\" src=\"https:\/\/lh4.googleusercontent.com\/bUAH1tBFCqxjrnWB-JOpJ-hCLUSJ4ispcUe2QQDvSJhxv_JQO4oGrPAIijxCtTnvr2gjijbFprOefbDDXBmv7X4zUB2-gswgByTlbq9UQKYZCAjToxUtWKjyR1aSpVVjnVbXXDi7\" alt=\"Screen Shot 2016-12-12 at 2.10.40 PM.png\" \/><\/p>\n<p>&nbsp;<\/p>\n<p>Dependiendo de lo bueno que sea el paso 4, podemos minimizar u omitir completamente los pasos 5 y 6 y mejorar as\u00ed el rendimiento de la consulta. Para ayudar en esta tarea, hemos lanzado Index Advisor.<\/p>\n<p><a href=\"https:\/\/index-advisor.couchbase.com\">https:\/\/index-advisor.couchbase.com<\/a><\/p>\n<h4>Index Advisor: \u00a1el servicio!<\/h4>\n<p>Con Index Advisor, puede<\/p>\n<ol>\n<li>Proporcione una consulta o varias consultas de <strong>incluso un servidor anterior a 6.5<\/strong> y el servicio le recomendar\u00e1 los \u00edndices que debe tener\/crear para obtener el mejor rendimiento.<\/li>\n<li>Como no disponemos de sus datos ni de su esquema, no podemos saber si dispone actualmente de esos \u00edndices. Pronto mejoraremos esta interfaz para que acepte datos\/estad\u00edsticas\/esquemas\/inferencias\/\u00edndices actuales - o cualquier otra cosa que nos puedas proporcionar para hacer mejores recomendaciones.<\/li>\n<\/ol>\n<p>Una vez que nos proporcione la consulta con la directiva ADVISE, la herramienta le dar\u00e1 las recomendaciones para el \u00edndice m\u00ednimo y el \u00edndice de cobertura.<\/p>\n<ul>\n<li>\u00cdndices: En esta secci\u00f3n se enumeran los \u00edndices recomendados en funci\u00f3n de los predicados de la cl\u00e1usula WHERE\/ON, junto con la regla de recomendaci\u00f3n correspondiente que sigue cada \u00edndice.<\/li>\n<li>\u00cdndices de cobertura: Esta secci\u00f3n enumera los \u00edndices de cobertura aplicables a la consulta de entrada, es decir, un \u00edndice que incluye todos los campos a los que se hace referencia en la consulta para evitar el salto adicional al servicio de datos.<\/li>\n<\/ul>\n<p>Este es el aspecto de la herramienta. Haz clic en el gif de abajo para verlo con claridad.<\/p>\n<p><a href=\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/2019\/12\/IndexAdvisorexample.gif\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone wp-image-7963\" src=\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/2019\/12\/IndexAdvisorexample-300x158.gif\" alt=\"\" width=\"1115\" height=\"587\" srcset=\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2019\/12\/IndexAdvisorexample-300x158.gif 300w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2019\/12\/IndexAdvisorexample-1024x540.gif 1024w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2019\/12\/IndexAdvisorexample-768x405.gif 768w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2019\/12\/IndexAdvisorexample-1536x810.gif 1536w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2019\/12\/IndexAdvisorexample-20x11.gif 20w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2019\/12\/IndexAdvisorexample-1320x696.gif 1320w\" sizes=\"auto, (max-width: 1115px) 100vw, 1115px\" \/><\/a><\/p>\n<p>Ejemplos:<\/p>\n<p>1.<\/p>\n<pre class=\"lang:default decode:true\">ADVISE SELECT fname, age, age\/7 AS age_dog_years FROM trial WHERE fname = 'Sara'<\/pre>\n<pre class=\"lang:default decode:true\">{\r\n  \"results\": [\r\n    {\r\n      \"#operator\": \"Advise\",\r\n      \"advice\": {\r\n        \"#operator\": \"IndexAdvice\",\r\n        \"adviseinfo\": [\r\n          {\r\n            \"recommended_indexes\": {\r\n              \"covering_indexes\": [\r\n                {\r\n                  \"index_statement\": \"CREATE INDEX adv_fname_age ON `trial`(`fname`,`age`)\",\r\n                  \"keyspace_alias\": \"trial\"\r\n                }\r\n              ],\r\n              \"indexes\": [\r\n                {\r\n                  \"index_statement\": \"CREATE INDEX adv_fname ON `trial`(`fname`)\",\r\n                  \"keyspace_alias\": \"trial\",\r\n                  \"recommending_rule\": \"Index keys follow order of predicate types: 2. equality\/null\/missing.\"\r\n                }\r\n              ]\r\n            }\r\n          }\r\n        ]\r\n      },\r\n      \"query\": \"SELECT fname, age, age\/7 AS age_dog_years FROM trial WHERE fname = 'Sara'\"\r\n    }\r\n  ]\r\n}\r\n<\/pre>\n<p>2.<\/p>\n<pre class=\"lang:default decode:true\">ADVISE SELECT (DISTINCT purchases.customerId)FROM purchases\u00a0\r\nWHERE purchases.purchasedAt BETWEEN \"2014-03-01\" AND \"2014-03-31\"<\/pre>\n<pre class=\"lang:default decode:true\">{\r\n  \"results\": [\r\n    {\r\n      \"#operator\": \"Advise\",\r\n      \"advice\": {\r\n        \"#operator\": \"IndexAdvice\",\r\n        \"adviseinfo\": [\r\n          {\r\n            \"recommended_indexes\": {\r\n              \"indexes\": [\r\n                {\r\n                  \"index_statement\": \"CREATE INDEX adv_purchasedAt ON `purchases`(`purchasedAt`)\",\r\n                  \"keyspace_alias\": \"purchases\",\r\n                  \"recommending_rule\": \"Index keys follow order of predicate types: 4. not less than\/between\/not greater than.\"\r\n                }\r\n              ]\r\n            }\r\n          }\r\n        ]\r\n      },\r\n      \"query\": \"SELECT (DISTINCT purchases.customerId) \\nFROM purchases\\nWHERE purchases.purchasedAt BETWEEN \\\"2014-03-01\\\" AND \\\"2014-03-31\\\"\"\r\n    }\r\n  ]\r\n}<\/pre>\n<p>3.<\/p>\n<pre class=\"lang:default decode:true\">ADVISE SELECT DISTINCT airline.name,airport.name AS airport,route.distance \r\nFROM `travel-sample` airport INNER JOIN `travel-sample` route ON airport.faa = route.sourceairport\r\nAND route.type = \"route\" INNER JOIN `travel-sample` airline ON route.airline = airline.iata \r\nAND airline.type = \"airline\"<\/pre>\n<pre class=\"lang:default decode:true\">{\r\n  \"results\": [\r\n    {\r\n      \"#operator\": \"Advise\",\r\n      \"advice\": {\r\n        \"#operator\": \"IndexAdvice\",\r\n        \"adviseinfo\": [\r\n          {\r\n            \"recommended_indexes\": {\r\n              \"covering_indexes\": [\r\n                {\r\n                  \"index_statement\": \"CREATE INDEX adv_type_sourceairport_airline_distance ON `travel-sample`(`type`,`sourceairport`,`airline`,`distance`)\",\r\n                  \"keyspace_alias\": \"travel-sample_route\"\r\n                },\r\n                {\r\n                  \"index_statement\": \"CREATE INDEX adv_type_iata_name ON `travel-sample`(`type`,`iata`,`name`)\",\r\n                  \"keyspace_alias\": \"travel-sample_airline\"\r\n                }\r\n              ],\r\n              \"indexes\": [\r\n                {\r\n                  \"index_statement\": \"CREATE INDEX adv_type_sourceairport ON `travel-sample`(`type`,`sourceairport`)\",\r\n                  \"keyspace_alias\": \"travel-sample_route\",\r\n                  \"recommending_rule\": \"Index keys follow order of predicate types: 2. equality\/null\/missing, 10. non-static join predicate.\"\r\n                },\r\n                {\r\n                  \"index_statement\": \"CREATE INDEX adv_type_iata ON `travel-sample`(`type`,`iata`)\",\r\n                  \"keyspace_alias\": \"travel-sample_airline\",\r\n                  \"recommending_rule\": \"Index keys follow order of predicate types: 2. equality\/null\/missing, 10. non-static join predicate.\"\r\n                }\r\n              ]\r\n            }\r\n          }\r\n        ]\r\n      },\r\n      \"query\": \"SELECT DISTINCT airline.name,airport.name AS airport,route.distance FROM `travel-sample` airport INNER JOIN `travel-sample` route ON airport.faa = route.sourceairport AND route.type = \\\"route\\\"\\nINNER JOIN `travel-sample` airline ON route.airline = airline.iata AND airline.type = \\\"airline\\\"\\nWHERE airport.type = \\\"airport\\\" AND airport.city = \\\"San Jose\\\";\"\r\n    }\r\n  ]\r\n}<\/pre>\n<p>4.<\/p>\n<pre class=\"lang:default decode:true\">SELECT ADVISOR([\"SELECT * FROM `travel-sample` WHERE type = 'hotel' AND city = 'Paris'\", \r\n                \"SELECT * FROM `travel-sample` h JOIN `travel-sample` a ON a.city = h.city\r\n                                           WHERE h.type = 'hotel' AND a.type = 'airport'\"])<\/pre>\n<p>&nbsp;<\/p>\n<div class=\"listingblock\" data-ce-key=\"2760\">\n<div class=\"title\" data-ce-key=\"2761\">Resultado<\/div>\n<\/div>\n<pre class=\"lang:default decode:true\">{\r\n  \"results\": [\r\n    {\r\n      \"$1\": {\r\n        \"recommended_indexes\": [\r\n          {\r\n            \"index\": \"CREATE INDEX adv_type_city ON `travel-sample`(`type`,`city`)\",\r\n            \"statements\": [\r\n              {\r\n                \"run_count\": 1,\r\n                \"statement\": \"SELECT * FROM `travel-sample` WHERE type = 'hotel' AND city = 'Paris'\"\r\n              },\r\n              {\r\n                \"run_count\": 1,\r\n                \"statement\": \"SELECT * FROM `travel-sample` h JOIN `travel-sample` a ON a.city = h.city                                 WHERE h.type = 'hotel' AND a.type = 'airport'\"\r\n              }\r\n            ]\r\n          }\r\n        ]\r\n      }\r\n    }\r\n  ]\r\n}\r\n<\/pre>\n<p>&nbsp;<\/p>\n<p>Los \u00edndices candidatos se generan siguiendo las reglas de dise\u00f1o especificadas <a href=\"https:\/\/www.couchbase.com\/blog\/es\/create-right-index-get-right-performance\/\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">aqu\u00ed<\/a>.<\/p>\n<h4>Lo que queda por hacer:<\/h4>\n<p>1. 1. Mejorar la interfaz de usuario de esta herramienta. Proporcionar recomendaciones de \u00edndice en texto para cortar y pegar m\u00e1s f\u00e1cilmente. Actualmente proporciona una salida JSON.<\/p>\n<p>2. Aceptar sabores para poder generar recomendaciones de \u00edndices parciales.<\/p>\n<p>3. Proporcionar una forma de permitir al usuario introducir el esquema, los \u00edndices existentes, inferir la salida, tal vez incluso datos de prueba.<\/p>\n<p>Nos encantar\u00eda que nos dijera qu\u00e9 le ha parecido la herramienta y qu\u00e9 funciones adicionales le gustar\u00eda ver. Comparta su opini\u00f3n a trav\u00e9s de los comentarios.<\/p>\n<h4>M\u00e1s informaci\u00f3n sobre la funci\u00f3n Index Advisor:<\/h4>\n<p><a href=\"https:\/\/www.couchbase.com\/blog\/es\/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\/es\/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>Resumen:<\/h4>\n<p>El asesor de \u00edndices (sentencia ADVISE) proporciona recomendaciones de \u00edndices para una \u00fanica consulta. Aconseja \u00edndice regular, \u00edndice de matriz e \u00edndice de cobertura y proporciona informaci\u00f3n sobre la regla de recomendaci\u00f3n correspondiente que sigue cada clave de \u00edndice.<\/p>\n<p>El asesor de \u00edndices (sentencia ADVISOR) proporciona recomendaciones de \u00edndices para m\u00faltiples consultas. Recomienda el menor n\u00famero posible de \u00edndices adecuados para todas las consultas de la matriz.<\/p>\n<p><strong>Pru\u00e9belo en casa.<\/strong><\/p>\n<p>https:\/\/index-advisor.couchbase.com<\/p>","protected":false},"excerpt":{"rendered":"<p>We are excited to announce the release of : Couchbase Index Advisor Service https:\/\/index-advisor.couchbase.com Yet Another service? Why? We released N1QL(SQL for JSON) a few years ago- so that you could use SQL to retrieve and manipulate JSON data. But [&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":[1812],"tags":[2439,2440,2445,2444],"ppma_author":[9099],"class_list":["post-7940","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-n1ql-query","tag-index-advisor","tag-indexes","tag-query-optimization","tag-secondary-indexes"],"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 Couchbase N1QL(SQL for JSON) - The Couchbase Blog<\/title>\n<meta name=\"description\" content=\"Couchbase Index advisor provides secondary index recommendations for SQL-like queries on JSON documents to improve query performance.\" \/>\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\/es\/index-advisor-service\/\" \/>\n<meta property=\"og:locale\" content=\"es_MX\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Index Advisor Service for Couchbase N1QL(SQL for JSON)\" \/>\n<meta property=\"og:description\" content=\"Couchbase Index advisor provides secondary index recommendations for SQL-like queries on JSON documents to improve query performance.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.couchbase.com\/blog\/es\/index-advisor-service\/\" \/>\n<meta property=\"og:site_name\" content=\"The Couchbase Blog\" \/>\n<meta property=\"article:published_time\" content=\"2019-12-26T18:54:55+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2025-06-14T00:21:52+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=\"6 minutos\" \/>\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\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/index-advisor-service\/\"},\"author\":{\"name\":\"Kamini Jagtiani\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/#\/schema\/person\/f99c5767a877147f9cf658230bc2473b\"},\"headline\":\"Index Advisor Service for Couchbase N1QL(SQL for JSON)\",\"datePublished\":\"2019-12-26T18:54:55+00:00\",\"dateModified\":\"2025-06-14T00:21:52+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/index-advisor-service\/\"},\"wordCount\":847,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/#organization\"},\"image\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/index-advisor-service\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2019\/12\/ZgEfnw1X_400x400.png\",\"keywords\":[\"Index Advisor\",\"Indexes\",\"Query optimization\",\"Secondary indexes\"],\"articleSection\":[\"SQL++ \/ N1QL Query\"],\"inLanguage\":\"es\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/www.couchbase.com\/blog\/index-advisor-service\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/index-advisor-service\/\",\"url\":\"https:\/\/www.couchbase.com\/blog\/index-advisor-service\/\",\"name\":\"Index Advisor Service for Couchbase N1QL(SQL for JSON) - The Couchbase Blog\",\"isPartOf\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/index-advisor-service\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/index-advisor-service\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2019\/12\/ZgEfnw1X_400x400.png\",\"datePublished\":\"2019-12-26T18:54:55+00:00\",\"dateModified\":\"2025-06-14T00:21:52+00:00\",\"description\":\"Couchbase Index advisor provides secondary index recommendations for SQL-like queries on JSON documents to improve query performance.\",\"breadcrumb\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/index-advisor-service\/#breadcrumb\"},\"inLanguage\":\"es\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/www.couchbase.com\/blog\/index-advisor-service\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"es\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/index-advisor-service\/#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\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/www.couchbase.com\/blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Index Advisor Service for Couchbase N1QL(SQL for JSON)\"}]},{\"@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\":\"es\"},{\"@type\":\"Organization\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/#organization\",\"name\":\"The Couchbase Blog\",\"url\":\"https:\/\/www.couchbase.com\/blog\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"es\",\"@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\":\"es\",\"@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\/es\/author\/kaminijagtiani\/\"}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"Index Advisor Service for Couchbase N1QL(SQL for JSON) - The Couchbase Blog","description":"Couchbase Index advisor provides secondary index recommendations for SQL-like queries on JSON documents to improve query performance.","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\/es\/index-advisor-service\/","og_locale":"es_MX","og_type":"article","og_title":"Index Advisor Service for Couchbase N1QL(SQL for JSON)","og_description":"Couchbase Index advisor provides secondary index recommendations for SQL-like queries on JSON documents to improve query performance.","og_url":"https:\/\/www.couchbase.com\/blog\/es\/index-advisor-service\/","og_site_name":"The Couchbase Blog","article_published_time":"2019-12-26T18:54:55+00:00","article_modified_time":"2025-06-14T00:21:52+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":"6 minutos"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.couchbase.com\/blog\/index-advisor-service\/#article","isPartOf":{"@id":"https:\/\/www.couchbase.com\/blog\/index-advisor-service\/"},"author":{"name":"Kamini Jagtiani","@id":"https:\/\/www.couchbase.com\/blog\/#\/schema\/person\/f99c5767a877147f9cf658230bc2473b"},"headline":"Index Advisor Service for Couchbase N1QL(SQL for JSON)","datePublished":"2019-12-26T18:54:55+00:00","dateModified":"2025-06-14T00:21:52+00:00","mainEntityOfPage":{"@id":"https:\/\/www.couchbase.com\/blog\/index-advisor-service\/"},"wordCount":847,"commentCount":0,"publisher":{"@id":"https:\/\/www.couchbase.com\/blog\/#organization"},"image":{"@id":"https:\/\/www.couchbase.com\/blog\/index-advisor-service\/#primaryimage"},"thumbnailUrl":"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2019\/12\/ZgEfnw1X_400x400.png","keywords":["Index Advisor","Indexes","Query optimization","Secondary indexes"],"articleSection":["SQL++ \/ N1QL Query"],"inLanguage":"es","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/www.couchbase.com\/blog\/index-advisor-service\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/www.couchbase.com\/blog\/index-advisor-service\/","url":"https:\/\/www.couchbase.com\/blog\/index-advisor-service\/","name":"Index Advisor Service for Couchbase N1QL(SQL for JSON) - The Couchbase Blog","isPartOf":{"@id":"https:\/\/www.couchbase.com\/blog\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.couchbase.com\/blog\/index-advisor-service\/#primaryimage"},"image":{"@id":"https:\/\/www.couchbase.com\/blog\/index-advisor-service\/#primaryimage"},"thumbnailUrl":"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2019\/12\/ZgEfnw1X_400x400.png","datePublished":"2019-12-26T18:54:55+00:00","dateModified":"2025-06-14T00:21:52+00:00","description":"Couchbase Index advisor provides secondary index recommendations for SQL-like queries on JSON documents to improve query performance.","breadcrumb":{"@id":"https:\/\/www.couchbase.com\/blog\/index-advisor-service\/#breadcrumb"},"inLanguage":"es","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.couchbase.com\/blog\/index-advisor-service\/"]}]},{"@type":"ImageObject","inLanguage":"es","@id":"https:\/\/www.couchbase.com\/blog\/index-advisor-service\/#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\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.couchbase.com\/blog\/"},{"@type":"ListItem","position":2,"name":"Index Advisor Service for Couchbase N1QL(SQL for JSON)"}]},{"@type":"WebSite","@id":"https:\/\/www.couchbase.com\/blog\/#website","url":"https:\/\/www.couchbase.com\/blog\/","name":"El blog de Couchbase","description":"Couchbase, la base de datos NoSQL","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":"es"},{"@type":"Organization","@id":"https:\/\/www.couchbase.com\/blog\/#organization","name":"El blog de Couchbase","url":"https:\/\/www.couchbase.com\/blog\/","logo":{"@type":"ImageObject","inLanguage":"es","@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":"es","@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 es Gerente Senior de Ingenier\u00eda para el Equipo de Consultas en Couchbase R&amp;D. Antes de Couchbase, Kamini estuvo 7 a\u00f1os en Futurewei como Arquitecto\/Gerente de Kernel y 13 a\u00f1os en IBM Informix como Ingeniero de Software. Kamini es licenciada en Inform\u00e1tica e Ingenier\u00eda por la Universidad de Bombay (India) y posee 5 patentes estadounidenses.","url":"https:\/\/www.couchbase.com\/blog\/es\/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":"Kamini Jagtiani es Gerente Senior de Ingenier\u00eda para el Equipo de Consultas en Couchbase R&amp;D. Antes de Couchbase, Kamini estuvo 7 a\u00f1os en Futurewei como Arquitecto\/Gerente de Kernel y 13 a\u00f1os en IBM Informix como Ingeniero de Software. Kamini es licenciada en Inform\u00e1tica e Ingenier\u00eda por la Universidad de Bombay (India) y posee 5 patentes estadounidenses."}],"_links":{"self":[{"href":"https:\/\/www.couchbase.com\/blog\/es\/wp-json\/wp\/v2\/posts\/7940","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.couchbase.com\/blog\/es\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.couchbase.com\/blog\/es\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/es\/wp-json\/wp\/v2\/users\/50908"}],"replies":[{"embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/es\/wp-json\/wp\/v2\/comments?post=7940"}],"version-history":[{"count":0,"href":"https:\/\/www.couchbase.com\/blog\/es\/wp-json\/wp\/v2\/posts\/7940\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/es\/wp-json\/wp\/v2\/media\/7971"}],"wp:attachment":[{"href":"https:\/\/www.couchbase.com\/blog\/es\/wp-json\/wp\/v2\/media?parent=7940"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/es\/wp-json\/wp\/v2\/categories?post=7940"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/es\/wp-json\/wp\/v2\/tags?post=7940"},{"taxonomy":"author","embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/es\/wp-json\/wp\/v2\/ppma_author?post=7940"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}