{"id":11065,"date":"2021-04-28T16:03:57","date_gmt":"2021-04-28T23:03:57","guid":{"rendered":"https:\/\/www.couchbase.com\/blog\/?p=11065"},"modified":"2024-05-08T07:22:25","modified_gmt":"2024-05-08T14:22:25","slug":"craft-the-right-query-get-the-right-performance","status":"publish","type":"post","link":"https:\/\/www.couchbase.com\/blog\/es\/craft-the-right-query-get-the-right-performance\/","title":{"rendered":"Elabore la consulta correcta, obtenga el rendimiento adecuado"},"content":{"rendered":"<p>Hay un gran blog sobre c\u00f3mo obtener el m\u00e1ximo rendimiento de nuestro servicio de indexaci\u00f3n: <a href=\"https:\/\/www.couchbase.com\/blog\/es\/create-right-index-get-right-performance\/\">\"Crear el \u00edndice adecuado, obtener el rendimiento adecuado\".<\/a>tanto ese blog como sus consejos han resistido el paso del tiempo. As\u00ed que, \u00bfpor qu\u00e9 no tener un blog relacionado con las consultas en su hom\u00f3nimo?<\/p>\n<p>En cualquier caso, creo que lo mismo puede decirse de nuestro servicio de consulta: para obtener el rendimiento adecuado, hay que elaborar la consulta adecuada. El servicio de \u00edndices puede recibir muchas cr\u00edticas por ser el \u00fanico que contribuye al rendimiento de las consultas. Pero a veces es necesario cambiar tanto la consulta como el \u00edndice que se utiliza.<\/p>\n<p>Esperemos que aqu\u00ed podamos mostrar un ejemplo en el que podr\u00eda ser s\u00f3lo un ajuste de consulta lo que tiene que suceder con el fin de obtener el rendimiento de nivel empresarial por el que Couchbase es conocido. El siguiente ejemplo se basa en una pregunta que nos hizo uno de nuestros clientes, as\u00ed que esperamos que esto sea \u00fatil para un n\u00famero de personas que utilizan Couchbase \"en c\u00f3lera\".<\/p>\n<h3>Su entorno<\/h3>\n<p>Utilicemos un ejemplo, y adem\u00e1s hag\u00e1moslo f\u00e1cil de seguir, soy un gran fan de los blogs que permiten a los lectores seguirlos si lo desean. Para sentar las bases, aqu\u00ed tienes algunos componentes que podr\u00edas utilizar para realizar este ejemplo:<\/p>\n<ol>\n<li>El siempre \u00fatil <a href=\"https:\/\/cloud.couchbase.com\/sign-up\">https:\/\/cloud.couchbase.com\/sign-up<\/a> entorno de desarrollo. \u00bfPasando el rato en tu hamaca en una playa de Bali? Si enciendes tu propio contenedor docker de Couchbase, los ventiladores arder\u00e1n y habr\u00e1 arena directamente en tu Mojito. Siempre y cuando tengas conexi\u00f3n a Internet, podemos ofrecerte 30 minutos de entorno de desarrollo \u00a1gratis! Obviamente eres libre de usar cualquier entorno Couchbase que ya tengas.<\/li>\n<li>El conjunto de datos de la muestra de viajes<\/li>\n<li><a href=\"https:\/\/docs.couchbase.com\/server\/current\/n1ql\/n1ql-language-reference\/indexing-arrays.html\">Su documentaci\u00f3n pr\u00e1ctica sobre matrices N1QL<\/a><\/li>\n<li><a href=\"https:\/\/www.couchbase.com\/blog\/es\/working-json-arrays-n1ql\/\">Este pr\u00e1ctico blog de referencia de bolsillo sobre el trabajo con matrices<\/a><\/li>\n<\/ol>\n<p><em><strong>N.B. Los ejemplos de N1QL utilizar\u00e1n nuestra funci\u00f3n de \u00e1mbitos\/colecciones, por lo que el contexto de cubo se establece en el \u00e1mbito predeterminado del conjunto de datos de la muestra de viajes.<\/strong><\/em><\/p>\n<h4>Contexto real<\/h4>\n<p>Para situar el escenario de este ejemplo, podemos utilizar un caso de uso com\u00fan: la generaci\u00f3n de campa\u00f1as de marketing. Un ejemplo de esta consulta podr\u00eda ser encontrar a los visitantes del hotel que han dejado una rese\u00f1a y a los que les ha gustado el hotel: estos datos podr\u00edan darles derecho a recompensas de un programa de fidelizaci\u00f3n, a estancias en hoteles mejor orientadas\/similares, o simplemente a una visi\u00f3n de los usuarios que tienen m\u00e1s probabilidades de dejar una rese\u00f1a\/me gusta. Todos estos datos son muy valiosos para ofrecer un mejor servicio a nuestros clientes.<\/p>\n<p>El objetivo principal de este ejemplo espec\u00edfico es mostrarte las posibilidades de consultar m\u00faltiples arrays dentro de un \u00fanico documento JSON, y de nuevo plantar la semilla de que a veces puedes sacar a\u00fan m\u00e1s rendimiento de tu servicio de consulta despu\u00e9s de crear el \u00edndice adecuado. Despu\u00e9s de todo, est\u00e1s haciendo uso de un sistema que permite campos de datos din\u00e1micos y las matrices son una gran parte de la flexibilidad del uso de JSON como formato de datos.<\/p>\n<h3>Humildes comienzos<\/h3>\n<p>Una forma com\u00fan de consultar arrays en n1ql (como se explica en el blog enlazado), es a trav\u00e9s de lo siguiente:<\/p>\n<pre class=\"lang:default decode:true\">SELECT (ANY v IN [1, 2, 3, 4, 5] SATISFIES v &gt; 4 END) as is_found, (ANY v IN [1, 2, 3, 4, 5] SATISFIES v = 7 END) as not_found;<\/pre>\n<p>En este ejemplo estamos diciendo: \"cons\u00edgueme elementos del array, que coincidan con la condici\u00f3n de la sentencia SATISFIES\".<\/p>\n<p>Si aplic\u00e1ramos este m\u00e9todo a nuestros intentos de consultar m\u00faltiples matrices en un documento JSON, probablemente se parecer\u00eda a lo siguiente:<\/p>\n<pre class=\"lang:default decode:true\">SELECT public_likes, reviews FROM _default WHERE type=\"hotel\"\r\nAND ANY r IN reviews SATISFIES r.author = \"Ozella Sipes\" END\r\nAND ANY l IN public_likes SATISFIES l = \"Ozella Sipes\" END LIMIT 1;<\/pre>\n<p>Sin embargo, esto no conducir\u00eda a una consulta de alto rendimiento, ya que N1QL actualmente requiere que se construya un \u00fanico array indexable a partir de los arrays del documento, <a href=\"https:\/\/docs.couchbase.com\/server\/current\/n1ql\/n1ql-language-reference\/indexing-arrays.html#array-expr\">como se se\u00f1ala aqu\u00ed<\/a>.<\/p>\n<h4>Creaci\u00f3n de \u00edndices para m\u00faltiples campos de matriz<\/h4>\n<p>\u00bfC\u00f3mo se construye un \u00edndice de este tipo? Veamos un ejemplo, utilizando nuestro caso de uso de recopilaci\u00f3n de datos sobre hu\u00e9spedes a los que les han gustado nuestros hoteles y han hecho rese\u00f1as sobre ellos.<\/p>\n<pre class=\"lang:default decode:true\">CREATE INDEX `reviewers_likes_idx` ON `_default`( DISTINCT ARRAY ( DISTINCT ARRAY [l,r.author]\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 FOR r IN\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 reviews\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 END)\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 FOR l in public_likes END) WHERE type=\"hotel\";<\/pre>\n<p>Lo que estamos haciendo aqu\u00ed es crear un \u00edndice con un \u00fanico array de likes y reviews combinados. Esta es la mejor pr\u00e1ctica y apoya la nota en nuestra documentaci\u00f3n. S\u00f3lo para mostrarle una manera en la que usted podr\u00eda haber pensado que ser\u00eda correcto: aqu\u00ed est\u00e1 el no soportado y la forma de definitivamente no indexar m\u00faltiples campos de matriz:<\/p>\n<pre class=\"lang:default decode:true\">CREATE INDEX `not_the_right_idx` ON `_default`( DISTINCT (ARRAY r.field FOR r in json_obj END), likes);<\/pre>\n<p><strong>Esto indexar\u00eda m\u00faltiples campos de array - no aconsejable.<\/strong><\/p>\n<h4>Mejorar la consulta<\/h4>\n<p>A continuaci\u00f3n se muestran dos ejemplos de consultas que se han ejecutado en nuestro banco de trabajo de consultas. Utilizando mi consulta mejorada he conseguido reducir el tiempo de ejecuci\u00f3n de 956,3 ms a ~4 ms. Pru\u00e9belo usted mismo, la consulta mejorada se encuentra al final de este blog.<\/p>\n<h5>Consulta no eficaz<\/h5>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-large wp-image-11127\" src=\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/2021\/04\/non_performant_query-1024x320.png\" alt=\"Non Performant N1QL query using Primary Index\" width=\"900\" height=\"281\" srcset=\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2021\/04\/non_performant_query-1024x320.png 1024w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2021\/04\/non_performant_query-300x94.png 300w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2021\/04\/non_performant_query-768x240.png 768w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2021\/04\/non_performant_query-20x6.png 20w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2021\/04\/non_performant_query.png 1140w\" sizes=\"auto, (max-width: 900px) 100vw, 900px\" \/><\/p>\n<p>&nbsp;<\/p>\n<h5>Mejora del rendimiento de las consultas<\/h5>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-large wp-image-11128\" src=\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/2021\/04\/performant_query-1024x295.png\" alt=\"Performant N1QL query using the customised multiple array index\" width=\"900\" height=\"259\" srcset=\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2021\/04\/performant_query-1024x295.png 1024w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2021\/04\/performant_query-300x86.png 300w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2021\/04\/performant_query-768x221.png 768w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2021\/04\/performant_query-20x6.png 20w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2021\/04\/performant_query.png 1279w\" sizes=\"auto, (max-width: 900px) 100vw, 900px\" \/><\/p>\n<p>En esencia, nuestras dos consultas funcionar\u00edan, pero los tiempos de ejecuci\u00f3n de ambas difieren enormemente, y esto se debe a que en la \u00faltima consulta estamos utilizando un \u00edndice cuidadosamente elaborado y basado en las mejores pr\u00e1cticas. Si has llegado hasta aqu\u00ed, puedes ejecutarlo t\u00fa mismo. Ten en cuenta que he a\u00f1adido a \"Ozella Sipes\" como autora de una rese\u00f1a y como \"likeer\" p\u00fablico en uno de los documentos del hotel para comprobar que mi consulta funciona. Los resultados pueden variar en funci\u00f3n del nombre que utilices.<\/p>\n<pre class=\"lang:default decode:true\">SELECT META().id FROM _default WHERE type=\"hotel\"\r\nAND ANY l IN public_likes SATISFIES (\r\n\u00a0\u00a0\u00a0 ANY r IN reviews\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 SATISFIES [l,r.author] = [\"Ozella Sipes\", \"Ozella Sipes\"] END) END\r\nLIMIT 1;<\/pre>\n<p>Espero que este blog le haya sido \u00fatil y le haya dado una idea de que, en algunos casos, tambi\u00e9n hay que tener en cuenta el uso de la consulta correcta para obtener el rendimiento adecuado.<\/p>","protected":false},"excerpt":{"rendered":"<p>There is a great blog on getting the best performance out of our Indexing service: &#8220;Create the Right Index, Get the Right Performance.&#8221;, both that blog and its advice have stood the test of time. So why not have a [&hellip;]<\/p>","protected":false},"author":76077,"featured_media":11030,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"inline_featured_image":false,"footnotes":""},"categories":[1815,8905,1812],"tags":[],"ppma_author":[9168],"class_list":["post-11065","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-best-practices-and-tutorials","category-couchbase-global-secondary-index","category-n1ql-query"],"acf":[],"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v26.0 (Yoast SEO v26.0) - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>Craft the Right Query, Get the Right Performance - The Couchbase Blog<\/title>\n<meta name=\"description\" content=\"Using Couchbases N1QL language, this blog will show you how you can iteratively craft performant queries alongside your Indexes\" \/>\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\/craft-the-right-query-get-the-right-performance\/\" \/>\n<meta property=\"og:locale\" content=\"es_MX\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Craft the Right Query, Get the Right Performance\" \/>\n<meta property=\"og:description\" content=\"Using Couchbases N1QL language, this blog will show you how you can iteratively craft performant queries alongside your Indexes\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.couchbase.com\/blog\/es\/craft-the-right-query-get-the-right-performance\/\" \/>\n<meta property=\"og:site_name\" content=\"The Couchbase Blog\" \/>\n<meta property=\"article:published_time\" content=\"2021-04-28T23:03:57+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2024-05-08T14:22:25+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/2021\/03\/feature-image-c.jpg\" \/>\n\t<meta property=\"og:image:width\" content=\"1200\" \/>\n\t<meta property=\"og:image:height\" content=\"628\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/jpeg\" \/>\n<meta name=\"author\" content=\"Sam Redman, Solutions Engineer\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Sam Redman, Solutions Engineer\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"5 minutos\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/craft-the-right-query-get-the-right-performance\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/craft-the-right-query-get-the-right-performance\/\"},\"author\":{\"name\":\"Sam Redman\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/#\/schema\/person\/512e4ed8ed1188a93cb7c3aee277f408\"},\"headline\":\"Craft the Right Query, Get the Right Performance\",\"datePublished\":\"2021-04-28T23:03:57+00:00\",\"dateModified\":\"2024-05-08T14:22:25+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/craft-the-right-query-get-the-right-performance\/\"},\"wordCount\":886,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/#organization\"},\"image\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/craft-the-right-query-get-the-right-performance\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2021\/03\/feature-image-c.jpg\",\"articleSection\":[\"Best Practices and Tutorials\",\"Couchbase Global Secondary Index\",\"SQL++ \/ N1QL Query\"],\"inLanguage\":\"es\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/www.couchbase.com\/blog\/craft-the-right-query-get-the-right-performance\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/craft-the-right-query-get-the-right-performance\/\",\"url\":\"https:\/\/www.couchbase.com\/blog\/craft-the-right-query-get-the-right-performance\/\",\"name\":\"Craft the Right Query, Get the Right Performance - The Couchbase Blog\",\"isPartOf\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/craft-the-right-query-get-the-right-performance\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/craft-the-right-query-get-the-right-performance\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2021\/03\/feature-image-c.jpg\",\"datePublished\":\"2021-04-28T23:03:57+00:00\",\"dateModified\":\"2024-05-08T14:22:25+00:00\",\"description\":\"Using Couchbases N1QL language, this blog will show you how you can iteratively craft performant queries alongside your Indexes\",\"breadcrumb\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/craft-the-right-query-get-the-right-performance\/#breadcrumb\"},\"inLanguage\":\"es\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/www.couchbase.com\/blog\/craft-the-right-query-get-the-right-performance\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"es\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/craft-the-right-query-get-the-right-performance\/#primaryimage\",\"url\":\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2021\/03\/feature-image-c.jpg\",\"contentUrl\":\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2021\/03\/feature-image-c.jpg\",\"width\":1200,\"height\":628,\"caption\":\"Introduction to Ottoman\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/craft-the-right-query-get-the-right-performance\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/www.couchbase.com\/blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Craft the Right Query, Get the Right Performance\"}]},{\"@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\/512e4ed8ed1188a93cb7c3aee277f408\",\"name\":\"Sam Redman\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"es\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/#\/schema\/person\/image\/69dc9b1e46ceb237d29e1e4b626c6bcc\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/ee34f7b9f2c46328736cdab03babdfd5ddc97cdd4a12ddd4b1b2d0f455eba51d?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/ee34f7b9f2c46328736cdab03babdfd5ddc97cdd4a12ddd4b1b2d0f455eba51d?s=96&d=mm&r=g\",\"caption\":\"Sam Redman\"},\"description\":\"Solutions Engineer at Couchbase. Sam has previously as a developer and an SRE before joining Couchbase.\",\"url\":\"https:\/\/www.couchbase.com\/blog\/es\/author\/sam-redman\/\"}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"Craft the Right Query, Get the Right Performance - The Couchbase Blog","description":"Usando el lenguaje N1QL de Couchbases, este blog te mostrar\u00e1 c\u00f3mo puedes crear consultas iterativas de alto rendimiento junto con tus \u00edndices.","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\/craft-the-right-query-get-the-right-performance\/","og_locale":"es_MX","og_type":"article","og_title":"Craft the Right Query, Get the Right Performance","og_description":"Using Couchbases N1QL language, this blog will show you how you can iteratively craft performant queries alongside your Indexes","og_url":"https:\/\/www.couchbase.com\/blog\/es\/craft-the-right-query-get-the-right-performance\/","og_site_name":"The Couchbase Blog","article_published_time":"2021-04-28T23:03:57+00:00","article_modified_time":"2024-05-08T14:22:25+00:00","og_image":[{"width":1200,"height":628,"url":"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/2021\/03\/feature-image-c.jpg","type":"image\/jpeg"}],"author":"Sam Redman, Solutions Engineer","twitter_card":"summary_large_image","twitter_misc":{"Written by":"Sam Redman, Solutions Engineer","Est. reading time":"5 minutos"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.couchbase.com\/blog\/craft-the-right-query-get-the-right-performance\/#article","isPartOf":{"@id":"https:\/\/www.couchbase.com\/blog\/craft-the-right-query-get-the-right-performance\/"},"author":{"name":"Sam Redman","@id":"https:\/\/www.couchbase.com\/blog\/#\/schema\/person\/512e4ed8ed1188a93cb7c3aee277f408"},"headline":"Craft the Right Query, Get the Right Performance","datePublished":"2021-04-28T23:03:57+00:00","dateModified":"2024-05-08T14:22:25+00:00","mainEntityOfPage":{"@id":"https:\/\/www.couchbase.com\/blog\/craft-the-right-query-get-the-right-performance\/"},"wordCount":886,"commentCount":0,"publisher":{"@id":"https:\/\/www.couchbase.com\/blog\/#organization"},"image":{"@id":"https:\/\/www.couchbase.com\/blog\/craft-the-right-query-get-the-right-performance\/#primaryimage"},"thumbnailUrl":"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2021\/03\/feature-image-c.jpg","articleSection":["Best Practices and Tutorials","Couchbase Global Secondary Index","SQL++ \/ N1QL Query"],"inLanguage":"es","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/www.couchbase.com\/blog\/craft-the-right-query-get-the-right-performance\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/www.couchbase.com\/blog\/craft-the-right-query-get-the-right-performance\/","url":"https:\/\/www.couchbase.com\/blog\/craft-the-right-query-get-the-right-performance\/","name":"Craft the Right Query, Get the Right Performance - The Couchbase Blog","isPartOf":{"@id":"https:\/\/www.couchbase.com\/blog\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.couchbase.com\/blog\/craft-the-right-query-get-the-right-performance\/#primaryimage"},"image":{"@id":"https:\/\/www.couchbase.com\/blog\/craft-the-right-query-get-the-right-performance\/#primaryimage"},"thumbnailUrl":"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2021\/03\/feature-image-c.jpg","datePublished":"2021-04-28T23:03:57+00:00","dateModified":"2024-05-08T14:22:25+00:00","description":"Usando el lenguaje N1QL de Couchbases, este blog te mostrar\u00e1 c\u00f3mo puedes crear consultas iterativas de alto rendimiento junto con tus \u00edndices.","breadcrumb":{"@id":"https:\/\/www.couchbase.com\/blog\/craft-the-right-query-get-the-right-performance\/#breadcrumb"},"inLanguage":"es","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.couchbase.com\/blog\/craft-the-right-query-get-the-right-performance\/"]}]},{"@type":"ImageObject","inLanguage":"es","@id":"https:\/\/www.couchbase.com\/blog\/craft-the-right-query-get-the-right-performance\/#primaryimage","url":"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2021\/03\/feature-image-c.jpg","contentUrl":"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2021\/03\/feature-image-c.jpg","width":1200,"height":628,"caption":"Introduction to Ottoman"},{"@type":"BreadcrumbList","@id":"https:\/\/www.couchbase.com\/blog\/craft-the-right-query-get-the-right-performance\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.couchbase.com\/blog\/"},{"@type":"ListItem","position":2,"name":"Craft the Right Query, Get the Right Performance"}]},{"@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\/512e4ed8ed1188a93cb7c3aee277f408","name":"Sam Redman","image":{"@type":"ImageObject","inLanguage":"es","@id":"https:\/\/www.couchbase.com\/blog\/#\/schema\/person\/image\/69dc9b1e46ceb237d29e1e4b626c6bcc","url":"https:\/\/secure.gravatar.com\/avatar\/ee34f7b9f2c46328736cdab03babdfd5ddc97cdd4a12ddd4b1b2d0f455eba51d?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/ee34f7b9f2c46328736cdab03babdfd5ddc97cdd4a12ddd4b1b2d0f455eba51d?s=96&d=mm&r=g","caption":"Sam Redman"},"description":"Solutions Engineer at Couchbase. Sam has previously as a developer and an SRE before joining Couchbase.","url":"https:\/\/www.couchbase.com\/blog\/es\/author\/sam-redman\/"}]}},"authors":[{"term_id":9168,"user_id":76077,"is_guest":0,"slug":"sam-redman","display_name":"Sam Redman, Solutions Engineer","avatar_url":"https:\/\/secure.gravatar.com\/avatar\/ee34f7b9f2c46328736cdab03babdfd5ddc97cdd4a12ddd4b1b2d0f455eba51d?s=96&d=mm&r=g","author_category":"","last_name":"Redman","first_name":"Sam","job_title":"","user_url":"","description":"Sam Redman es Ingeniero de Soluciones en Couchbase. Sam trabaj\u00f3 anteriormente en entornos de desarrollo y SRE antes de unirse a Couchbase."}],"_links":{"self":[{"href":"https:\/\/www.couchbase.com\/blog\/es\/wp-json\/wp\/v2\/posts\/11065","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\/76077"}],"replies":[{"embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/es\/wp-json\/wp\/v2\/comments?post=11065"}],"version-history":[{"count":0,"href":"https:\/\/www.couchbase.com\/blog\/es\/wp-json\/wp\/v2\/posts\/11065\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/es\/wp-json\/wp\/v2\/media\/11030"}],"wp:attachment":[{"href":"https:\/\/www.couchbase.com\/blog\/es\/wp-json\/wp\/v2\/media?parent=11065"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/es\/wp-json\/wp\/v2\/categories?post=11065"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/es\/wp-json\/wp\/v2\/tags?post=11065"},{"taxonomy":"author","embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/es\/wp-json\/wp\/v2\/ppma_author?post=11065"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}