{"id":5313,"date":"2026-01-19T16:48:39","date_gmt":"2026-01-19T15:48:39","guid":{"rendered":"https:\/\/sutilweb.eu\/?page_id=5313"},"modified":"2026-01-19T16:48:40","modified_gmt":"2026-01-19T15:48:40","slug":"39-indices-en-mysql","status":"publish","type":"page","link":"https:\/\/sutilweb.eu\/index.php\/lenguajes\/php\/php-practico\/39-indices-en-mysql\/","title":{"rendered":"39. \u00cdndices en MySQL"},"content":{"rendered":"\n<p>En <strong>MySQL,<\/strong> para que nuestras consultas sean m\u00e1s r\u00e1pidas, hemos de crear <strong>\u00edndices<\/strong>. Dichos \u00edndices no son propios del lenguaje SQL sino que cada sistema gestor de base de datos va a tener una forma diferente de colocar dichos \u00edndices.<\/p>\n\n\n\n<p>Por ejm, siguiendo el ejm de nuestra tabla contactos, queremos incluir \u00edndices tanto el el campo&nbsp;<strong><em>nombre<\/em><\/strong> como en el campo <strong><em>apellidos,<\/em><\/strong> ya que en el futuro queremos hacer b\u00fasquedas sobre estos dos contactos. Para crear un \u00edndice vamos a la consola y escribimos la siguiente sintaxis.<\/p>\n\n\n\n<p><strong>Ejm<\/strong><\/p>\n\n\n\n<p><strong><em>ALTER TABLE `ejemplo`.`contactos` ADD INDEX(nombre);<\/em><\/strong><\/p>\n\n\n\n<p>Posteriormente ejecutamos para que se cree el \u00edndice. Ahora cuando queramos hacer una consulta con respecto al campo nombre, <strong>MySQL<\/strong> ya no la va a buscar en toda la tabla sino que la va a buscar seg\u00fan un \u00edndice, de esta manera el resultado de b\u00fasqueda va a ser mucho m\u00e1s r\u00e1pido.<\/p>\n\n\n\n<p>Estos \u00edndices no van a ver su eficacia cuando tengamos unos cuantos cientos de registros, pero si nos van a beneficiar enormemente cuando estemos trabajando con miles de registros en nuestras tablas.<\/p>\n\n\n\n<p>No es muy recomendable crear \u00edndices para cada una de las columnas de la tabla porque cada vez que creamos un \u00edndice estamos utilizando memoria, por lo que deber\u00edamos limitar crear \u00edndices para aquellos campos que son susceptibles a hacer b\u00fasquedas.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Optimizaci\u00f3n de \u00edndices<\/h2>\n\n\n\n<p>Podr\u00edamos optimizar a\u00fan m\u00e1s la creaci\u00f3n de nuestros \u00edndices, podr\u00edamos crear un \u00edndice sobre el campo nombre&nbsp;y que s\u00f3lo utilice los primeros 20 caracteres. Su sintaxis ser\u00eda.<\/p>\n\n\n\n<p><strong>Ejm<\/strong><\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>ALTER TABLE `ejemplo`.`contactos`ADD INDEX(nombre(20));<\/code><\/pre>\n\n\n\n<p>Hay que tener mucho cuidado con esta sentencia ya que podr\u00eda conducir a errores.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Incluir \u00edndices cuando creemos una tabla<\/h2>\n\n\n\n<p>Su sintaxis ser\u00eda<\/p>\n\n\n\n<p><strong>Ejm<\/strong><\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>CREATE TABLE `ejemplo`.`contactos2` (\n`id` INT NOT NULL AUTO_INCREMENT,\n`nombre` VARCHAR(255) NOT NULL,\n`apellidos` VARCHAR(255) NOT NULL,\nPRIMARY KEY(id),\nINDEX(nombre),\nINDEX(apellidos)\n); <\/code><\/pre>\n\n\n\n<p>En este ejm hemos agregado un \u00edndice de tipo <strong><em>PRIMARY<\/em><\/strong> y dos \u00edndices de tipo <strong><em>INDEX<\/em><\/strong>.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>En MySQL, para que nuestras consultas sean m\u00e1s r\u00e1pidas, hemos de crear \u00edndices. Dichos \u00edndices no son propios del lenguaje [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"parent":4518,"menu_order":38,"comment_status":"closed","ping_status":"closed","template":"","meta":{"_uag_custom_page_level_css":"","site-sidebar-layout":"default","site-content-layout":"","ast-site-content-layout":"default","site-content-style":"default","site-sidebar-style":"default","ast-global-header-display":"","ast-banner-title-visibility":"","ast-main-header-display":"","ast-hfb-above-header-display":"","ast-hfb-below-header-display":"","ast-hfb-mobile-header-display":"","site-post-title":"","ast-breadcrumbs-content":"","ast-featured-img":"","footer-sml-layout":"","ast-disable-related-posts":"","theme-transparent-header-meta":"","adv-header-id-meta":"","stick-header-meta":"","header-above-stick-meta":"","header-main-stick-meta":"","header-below-stick-meta":"","astra-migrate-meta-layouts":"default","ast-page-background-enabled":"default","ast-page-background-meta":{"desktop":{"background-color":"var(--ast-global-color-4)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"tablet":{"background-color":"","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"mobile":{"background-color":"","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""}},"ast-content-background-meta":{"desktop":{"background-color":"var(--ast-global-color-5)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"tablet":{"background-color":"var(--ast-global-color-5)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"mobile":{"background-color":"var(--ast-global-color-5)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""}},"footnotes":""},"class_list":["post-5313","page","type-page","status-publish","hentry"],"uagb_featured_image_src":{"full":false,"thumbnail":false,"medium":false,"medium_large":false,"large":false,"1536x1536":false,"2048x2048":false},"uagb_author_info":{"display_name":"Sutil Web","author_link":"https:\/\/sutilweb.eu\/index.php\/author\/sutilweb\/"},"uagb_comment_info":0,"uagb_excerpt":"En MySQL, para que nuestras consultas sean m\u00e1s r\u00e1pidas, hemos de crear \u00edndices. Dichos \u00edndices no son propios del lenguaje [&hellip;]","_links":{"self":[{"href":"https:\/\/sutilweb.eu\/index.php\/wp-json\/wp\/v2\/pages\/5313","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/sutilweb.eu\/index.php\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/sutilweb.eu\/index.php\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/sutilweb.eu\/index.php\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/sutilweb.eu\/index.php\/wp-json\/wp\/v2\/comments?post=5313"}],"version-history":[{"count":2,"href":"https:\/\/sutilweb.eu\/index.php\/wp-json\/wp\/v2\/pages\/5313\/revisions"}],"predecessor-version":[{"id":5315,"href":"https:\/\/sutilweb.eu\/index.php\/wp-json\/wp\/v2\/pages\/5313\/revisions\/5315"}],"up":[{"embeddable":true,"href":"https:\/\/sutilweb.eu\/index.php\/wp-json\/wp\/v2\/pages\/4518"}],"wp:attachment":[{"href":"https:\/\/sutilweb.eu\/index.php\/wp-json\/wp\/v2\/media?parent=5313"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}