You are on page 1of 11

13/11/2018 MySQL CREATE INDEX: Crear o añadir índices en tablas

(https://www.anerbarrena.com)

 Programación y ejemplos de PHP, jQuery, HTML5, WordPress, MySQL, AMP y 


(https://plus.google.com/+AnerBarrena/posts)

 (https://www.anerbarrena.com/feed/)
 (https://www.youtube.com/user/anerbarrena)
 (https://www.linkedin.com/in/aner-barrena-valbuena-154ba2150/)
 (https://twitter.com/anerbarrena)
 (https://www.facebook.com/Anerbarrenaweb)

Inicio (https://www.anerbarrena.com) 
PHP y MySQL (https://www.anerbarrena.com/programacion/php/)  MySQL

(https://www.anerbarrena.com/programacion/php/mysql/)

MySQL CREATE INDEX: Crear o añadir índices en tablas


 Aner Barrena (https://www.anerbarrena.com/author/aner-barrena/)  24 junio, 2016

 MySQL (https://www.anerbarrena.com/programacion/php/mysql/), PHP y MySQL (https://www.anerbarrena.com/programacion/php/)

(https://www.facebook.com/sharer/sharer.php?u=https://www.anerbarrena.com/mysql-create-index-5281/)

(https://twitter.com/intent/tweet?url=https://www.anerbarrena.com/mysql-create-index-

5281/&text=%20vía%20@anerbarrena) (https://www.linkedin.com/cws/share?

url=https://www.anerbarrena.com/mysql-create-index-5281/) (whatsapp://send?text=

https://www.anerbarrena.com/mysql-create-index-5281/ 1/11
13/11/2018 MySQL CREATE INDEX: Crear o añadir índices en tablas

https://www.anerbarrena.com/mysql-create-index-5281/) (https://plus.google.com/share?
url=https://www.anerbarrena.com/mysql-create-index-5281/)
Post para repasar la sentencia de MySQL CREATE INDEX que sirve para crear o añadir índices en las tablas de una
base de datos y optimizar su rendimiento. Uso de cookies
Este sitio web utiliza cookies para que usted tenga la mejor experiencia de usuario. Si continúa navegando está dando su
Otras sentencias MySQL (https://www.anerbarrena.com/programacion/php/mysql/)
consentimiento interesantes
para la aceptación de las mencionadas cookies y la aceptación de nuestra política deson:
cookies
(https://www.anerbarrena.com/politica-de-cookies/), pinche el enlace para mayor información.
DROP TABLE (https://www.anerbarrena.com/drop-table-mysql-5048/)
ACEPTAR

CREATE TRIGGER (https://www.anerbarrena.com/create-trigguer-mysql-5145/)


INSERT (https://www.anerbarrena.com/mysql-insert-5169/)
DELETE (https://www.anerbarrena.com/mysql-delete-5148/)
CREATE VIEW (https://www.anerbarrena.com/create-view-mysql-5101/)

Por contra, si quisiéramos eliminar un índice os recomiendo leer este otro post:

MySQL DROP INDEX: Eliminar índices de las tablas (https://www.anerbarrena.com/mysql-drop-index-


5296/)

¿Qué son los índices de las tablas?

Los índices de las tablas ayudan a indexar el contenido de diversas columnas para facilitar la búsquedas de
contenido de cuando se ejecutan consultas sobre esas tablas.

De ahí que la creación de índices optimiza el rendiemiento de las consultas y a su vez el de la BBDD.

¿Qué tipo de índices hay?

Podemos tener los siguientes tipos de índices en una tabla de MySQL:

Únicos
Primarios

Ordinarios

De texto completo
Parte de campos o columnas

Sintaxis de la sentencia de MySQL CREATE INDEX

Vayamos con la sintaxis básica extraída de su web oficial (https://dev.mysql.com/doc/refman/5.5/en/create-


index.html):

1 CREATE [ONLINE|OFFLINE] [UNIQUE|FULLTEXT|SPATIAL] INDEX index_name


2     [index_type]
3     ON tbl_name (index_col_name,...)
4     [index_option] ...

Tras ver la sintaxis oficial os pongo unos ejemplos:

MySQL
1 CREATE INDEX nombre_indice ON nombrede_tabla(columna [columna2...]);

Con el código superior CREATE INDEX estaríamos creando uno o varios índices ordinarios en una tabla existente.

MySQL
1 CREATE FULLTEXT INDEX nombre_indice ON nombre_tabla(columna [columna2...]);

https://www.anerbarrena.com/mysql-create-index-5281/ 2/11
13/11/2018 MySQL CREATE INDEX: Crear o añadir índices en tablas

Con este otro código CREATE INDEX estaríamos creando uno o varios índices de texto completo FULLTEXT en
una tabla existente.

Yo personalmente prefiero definir lo íncides al crear la tabla o si la tabla ya existe uso la sentencia ALTER TABLE
para modificarla.

Íncide único (UNIQUE, ADD UNIQUE)

Un índice único no permite la inserción los valores duplicados en dicha columna que marquemos como único. S
puede aplicar a varias columnas. Os pongo 2 ejemplos para añadir un índice único a una tabla:

MySQL
1 ALTER TABLE nombre_de_la_tabla ADD UNIQUE [nombre_indice] (nombre_columna, [bombre_columna2]...);

Explico el código superior que deberíamos usar cuando la tabla ya existe:

Con ALTER TABLE (https://www.anerbarrena.com/alter-table-mysql-5050/) modificamos la tabla.


Con ADD UNIQUE añadimos opcionalmente el nombre del índice y especificamos obligatoriamente la
columna de la tabla.

Ahora os muestro el código necesario para añadir el índice cuando se crea la tabla:

MySQL
1 CREATE TABLE nombre_de_la_tabla (nombre_columna1, nombre columna 2...)
2 UNIQUE [nombre_indice] (nombre_columna)

Os explico el código:

CREATE TABLE (https://www.anerbarrena.com/create-table-mysql-5023/) creamos la tabla y definimos los


tipos de columna.
Con UNIQUE añadimos opcionalmente el nombre del índice y especificamos obligatoriamente la columna
de la tabla.

Índice Primario (PRIMARY KEY)

Un índice primario es también conocido como Primary KEY,  permite crear un índice en cuyo valor es único y no
puede ser NULL. Solo puede haber un índice primario por tabla.

Os pongo 2 ejemplos para añadir una PRIMARY KEY a una tabla:

MySQL
1 ALTER TABLE nombre_de_la_tabla ADD PRIMARY KEY (nombre_columna);

Explico el código superior que deberíamos usar cuando la tabla ya existe:

Con ALTER TABLE (https://www.anerbarrena.com/alter-table-mysql-5050/) modificamos la tabla.

Con ADD PRIMARY KEY definimos la columna que hará de primaria.

Ahora os muestro el código necesario para añadir el índice cuando se crea la tabla:

MySQL
1 CREATE TABLE nombre_de_la_tabla (nombre_columna1, nombre columna 2...)
2 PRIMARY KEY (nombre_columna)

Os explico el código:

CREATE TABLE (https://www.anerbarrena.com/create-table-mysql-5023/) creamos la tabla y definimos los


tipos de columna.
Con PRIMARY KEY definimos la columna que hará de primaria.

https://www.anerbarrena.com/mysql-create-index-5281/ 3/11
13/11/2018 MySQL CREATE INDEX: Crear o añadir índices en tablas

Índice Ordinario (ADD INDEX)

Este tipo de índice en MySQL (https://www.anerbarrena.com/programacion/php/mysql/) permite le existencia o


inserción de valores duplicados en una tabla. Con este tipo solamente mejoramos la ejecución y rendimiento de las
consultas (Que no es poco). Os pongo 2 ejemplos para añadir un índice ordinario a una tabla:

MySQL
1 ALTER TABLE nombre_de_la_tabla ADD INDEX [nombre_indice] (nombre_columna, [bombre_columna2]...);

Explico el código superior que deberíamos usar cuando la tabla ya existe:

Con ALTER TABLE (https://www.anerbarrena.com/alter-table-mysql-5050/) modificamos la tabla.

Con ADD INDEX definimos la columna que hará de índice ordinario. Podemos definir varias columnas.

Ahora os muestro el código necesario para añadir el índice cuando se crea la tabla:

MySQL
1 CREATE TABLE nombre_de_la_tabla (nombre_columna1, nombre columna 2...)
2 INDEX (nombre_columna, [bombre_columna2]...)

Os explico el código:

CREATE TABLE (https://www.anerbarrena.com/create-table-mysql-5023/) creamos la tabla y definimos los


tipos de columna.

Con INDEX definimos la columna o columnas que harán de índices.

Índices de texto completo (FULLTEXT)

Estos índices FULLTEXT o de texto completo se usan en tablas del tipo MyISAM, se debe relacionar con
columnas de tipo TEXT, CHAR o VARCHAR.

Optimizan el rendieminto de las consultas con búsquedas en tablas con gran información de campos de texto. Os
pongo 2 ejemplos para añadir un índice ordinario a una tabla:

MySQL
1 ALTER TABLE nombre_de_la_tabla ADD FULLTEXT [nombre_indice] (nombre_columna, [bombre_columna2]...)

Explico el código superior que deberíamos usar cuando la tabla ya existe:

Con ALTER TABLE (https://www.anerbarrena.com/alter-table-mysql-5050/) modificamos la tabla.


Con ADD FULLTEXT definimos la columna que hará de índice. Podemos definir varias columnas.

Ahora os muestro el código necesario para añadir el índice cuando se crea la tabla:

MySQL
1 CREATE TABLE nombre_de_la_tabla (nombre_columna1, nombre columna 2...)
2 FULLTEXT (nombre_columna, [bombre_columna2]...)

Os explico el código:

CREATE TABLE (https://www.anerbarrena.com/create-table-mysql-5023/) creamos la tabla y definimos los


tipos de columna.

Con FULLTEXT definimos la columna o columnas que harán de índices.

Índices con parte de campos o columnas

Similar al índice anterior FULLTEXT pero solamente cogiendo parte del contenido de la columna. Este tipo de
índices aligeran las consultas sobre campos de textos. Por ejemplo si realizamos búsquedas sobre tablas de
nombres o apellidos con seleccionar los primeros caracteres nos valdría para realizar la comparación.

https://www.anerbarrena.com/mysql-create-index-5281/ 4/11
13/11/2018 MySQL CREATE INDEX: Crear o añadir índices en tablas

Estos índices se definen seleccionando los primeros X caracteres de la columna. Os pongo 2 ejemplos para añadir
un índice con parte de una columna:

MySQL
1 ALTER TABLE nombre_de_la_tabla ADD INDEX (nombre_columna(X), [bombre_columna2(X)]...);

Explico el código superior que deberíamos usar cuando la tabla ya existe:

Con ALTER TABLE (https://www.anerbarrena.com/alter-table-mysql-5050/) modificamos la tabla.

Con ADD INDEX definimos la columna que hará de índice siendo X el número de caracteres a indexar.
Podemos definir varias columnas.

Ahora os muestro el código necesario para añadir el índice cuando se crea la tabla:

MySQL
1 CREATE TABLE nombre_de_la_tabla (nombre_columna1, nombre columna 2...)
2 INDEX (nombre_columna(X), [bombre_columna2(X)]...)

Os explico el código:

CREATE TABLE (https://www.anerbarrena.com/create-table-mysql-5023/) creamos la tabla y definimos los


tipos de columna.

Con INDEX definimos la columna o columnas que harán de índices siendo X el número de caracteres a
indexar.

Post Relacionados:

1. Ejemplos de programación PHP, jQuery, HTML5, WordPress, MySQL, AMP y JavaScript


(https://www.anerbarrena.com)
2. Tipos de dato con formato string en MySQL (https://www.anerbarrena.com/tipos-datos-string-mysql-4947/)

3. CREATE TABLE MySQL: Crear una tabla en una base de datos (https://www.anerbarrena.com/create-table-
mysql-5023/)
4. Tipos de dato en una base de datos MySQL (https://www.anerbarrena.com/tipos-dato-mysql-5024/)

5. MySQL ALTER PROCEDURE: modificar procedimientos almacenados (https://www.anerbarrena.com/mysql-


alter-procedure-5362/)
6. MySQL SELECT: Realizar consultas a una base de datos (https://www.anerbarrena.com/mysql-select-
consultas-base-datos-5426/)

PUEDES SEGUIRME EN REDES SOCIALES

(https://twitter.com/anerbarrena)
(https://www.facebook.com/Anerbarrenaweb)
(https://www.youtube.com/user/anerbarrena)
(https://plus.google.com/+AnerBarrena/posts)
(https://www.anerbarrena.com/feed

https://www.anerbarrena.com/mysql-create-index-5281/ 5/11
13/11/2018 MySQL CREATE INDEX: Crear o añadir índices en tablas


(https://www.anerbarrena.com/php-utf8_encode-5277/)
PHP utf8_encode(): Codi car cadenas a UTF-8 (https://www.anerbarrena.com/php-utf8_encode-5277/)


(https://www.anerbarrena.com/diferencias-jquery-position-o set-5284/)
Diferencias entre jQuery position() y o set() para obtener coordenadas de elementos
(https://www.anerbarrena.com/diferencias-jquery-position-o set-5284/)

P U B L I C I DA D

Ú LT I M O S P O S T

https://www.anerbarrena.com/mysql-create-index-5281/ 6/11
13/11/2018 MySQL CREATE INDEX: Crear o añadir índices en tablas

PHP round(): Redondeo de


los decimales de un número
(https://www.anerbarrena.com
round-redondeo-decimales-
6994/)
 Aner Barrena
(https://www.anerbarrena.com
barrena/)
 3 octubre, 2018

(https://www.anerbarrena.com/php-round-redondeo-decimales-6994/)

PHP array_unique: Eliminar los valores


duplicados de un array
(https://www.anerbarrena.com/php-
array_unique-6630/)
 Aner Barrena
(https://www.anerbarrena.com/author/aner-
barrena/)
 27 agosto, 2018

(https://www.anerbarrena.com/php-array_unique-6630/)

Cómo redireccionar urls sin www a urls con www con htaccess (https://www.anerbarrena.com/redireccionar-urls-sin-www-a-urls-con-www-
htaccess-6389/)
 Aner Barrena (https://www.anerbarrena.com/author/aner-barrena/)  7 agosto, 2018

https://www.anerbarrena.com/mysql-create-index-5281/ 7/11
13/11/2018 MySQL CREATE INDEX: Crear o añadir índices en tablas

(https://www.anerbarrena.com/redireccionar-urls-sin-www-a-urls-con-www-htaccess-6389/)

DNS prefetch: Optimizar la


carga de nuestra web
resolviendo DNS
previamente
(https://www.anerbarrena.c
prefetch-optimizar-carga-
web-6280/)
 Aner Barrena
(https://www.anerbarrena.c
barrena/)
 30 julio, 2018

(https://www.anerbarrena.com/dns-prefetch-optimizar-carga-web-6280/)

Cómo hacer
responsive vídeos
de Youtube, Vimeo
y similares en
iframes

https://www.anerbarrena.com/mysql-create-index-5281/ 8/11
13/11/2018 MySQL CREATE INDEX: Crear o añadir índices en tablas

(https://www.anerb
responsive-videos-
youtube-iframe-
6225/)
 Aner Barrena
(https://www.anerb
barrena/)
 25 julio, 2018

(https://www.anerbarrena.com/hacer-responsive-videos-youtube-iframe-6225/)

P U B L I C I DA D

TOP POST

jQuery load() (https://www.anerbarrena.com/jquery-load-html-div-460/), jQuery get()


(https://www.anerbarrena.com/jquery-get-5049/), jQuery post() (https://www.anerbarrena.com/jquery-
post-5064/), jQuery each() (https://www.anerbarrena.com/jquery-each-5297/), jQuery append()
(https://www.anerbarrena.com/jquery-append-5300/)
Obtener el valor de un radio button con jQuery, comprobar si está seleccionado y checkearlo
(https://www.anerbarrena.com/value-radio-button-jquery-checked-1580/)
https://www.anerbarrena.com/mysql-create-index-5281/ 9/11
13/11/2018 MySQL CREATE INDEX: Crear o añadir índices en tablas

jQuery change() (https://www.anerbarrena.com/jquery-change-1879/), jQuery toggle()


(https://www.anerbarrena.com/jquery-toogle-mostrar-ocultar-divs-1728/), Selectores jQuery
(https://www.anerbarrena.com/jquery-selectors-selectores-4768/), Efectos jQuery
(https://www.anerbarrena.com/efectos-en-jquery-5026/)
PHP date(): Obtener día, mes, año y hora actual con PHP (https://www.anerbarrena.com/php-date-1018/),
Compresión GZIP: Ahorrar ancho de banda en tu web (https://www.anerbarrena.com/compresion-gzip-
ahorrar-ancho-de-banda-5271/)
Date input HTML5: Un sencillo datepicker para tu formulario (https://www.anerbarrena.com/date-input-
html5-2829/), Gráficos SVG (https://www.anerbarrena.com/etiqueta-svg-5174/), video HTML5
(https://www.anerbarrena.com/html5-video-player-multimedia-5241/), audio HTML5
(https://www.anerbarrena.com/etiqueta-html5-audio-5259/) , AMP (https://www.anerbarrena.com/amp-
optimizar-paginas-moviles-5470/), JavaScript alert (https://www.anerbarrena.com/javascript-alert-confirm-
prompt-js-5497/)
PHP array(): Tipos y ejemplos para recorrer arrays (https://www.anerbarrena.com/php-array-tipos-
ejemplos-3876/), Redirect 301 (https://www.anerbarrena.com/redirect-301-htaccess-204/), PHP mail()
(https://www.anerbarrena.com/php-mail-enviar-emails-5417/)
jQuery animate() (https://www.anerbarrena.com/jquery-animate-3787/), jQuery css()
(https://www.anerbarrena.com/jquery-css-4900/), jQuery on() y off() (https://www.anerbarrena.com/jquery-
on-off-4767/)
Facebook Live (https://www.anerbarrena.com/facebook-live-video-movil-app-ios-android-5590/)

OTRAS WEBS

Egocast (http://www.egocast.es/)
Carpinteria Zaballa (http://www.carpinteriazaballa.com)
Palas de pádel (https://www.paddelea.com/palas-padel/modelos/todas/)
Zapatillas de pádel (https://www.paddelea.com/zapatillas-padel/modelos/todas/)
Zapatillas de running (https://www.runnea.com/zapatillas-running/modelos/todas/)
Black Friday Padel (https://www.paddelea.com/black-friday-padel/)
Black Friday running (https://www.runnea.com/black-friday-running/)

TA G S

botones compartir redes sociales (https://www.anerbarrena.com/etiquetas/botones-compartir-en-redes-


sociales/)

escapar caracteres especiales (https://www.anerbarrena.com/etiquetas/escapar-caracteres-especiales/)

expresiones regulares (https://www.anerbarrena.com/etiquetas/expresiones-regulares/)

redirect 301 (https://www.anerbarrena.com/etiquetas/redirect-301/)

https://www.anerbarrena.com/mysql-create-index-5281/ 10/11
13/11/2018 MySQL CREATE INDEX: Crear o añadir índices en tablas

robots.txt (https://www.anerbarrena.com/etiquetas/robots-txt/)

script (https://www.anerbarrena.com/etiquetas/script/)

Sistemas de comentarios para tu web o WordPress (https://www.anerbarrena.com/etiquetas/sistema-de-


comentarios/)

Sitemap (https://www.anerbarrena.com/etiquetas/sitemap/)

C AT E G O R Í A S

.htaccess Apache (https://www.anerbarrena.com/programacion/htaccess-apache/) (34)


AMP (https://www.anerbarrena.com/programacion/amp-js-cache-html/) (8)
HTML5 (https://www.anerbarrena.com/programacion/html5/) (88)
Ejemplos y programación de la API de HTML5
(https://www.anerbarrena.com/programacion/html5/device-api-dispositivo/) (2)
Formularios en HTML5 (https://www.anerbarrena.com/programacion/html5/form-html5/) (37)
Gráficos SVG (https://www.anerbarrena.com/programacion/html5/graficos-svg/) (2)
Nuevos input, etiquetas y atributos en HTML5
(https://www.anerbarrena.com/programacion/html5/nuevas-etiquetas-y-atributos/) (79)
Vídeo y audio HTML5 (https://www.anerbarrena.com/programacion/html5/video-audio/) (15)
JavaScript JS (https://www.anerbarrena.com/programacion/javascript-js/) (8)
jQuery (https://www.anerbarrena.com/programacion/jquery/) (71)
PHP y MySQL (https://www.anerbarrena.com/programacion/php/) (128)
Funciones de cadenas en PHP (https://www.anerbarrena.com/programacion/php/cadenas-string/) (33)
Funciones de fechas en PHP (https://www.anerbarrena.com/programacion/php/fechas/) (18)
MySQL (https://www.anerbarrena.com/programacion/php/mysql/) (39)
Recursos (https://www.anerbarrena.com/programacion/recursos/) (145)
Facebook (https://www.anerbarrena.com/programacion/recursos/facebook-recursos/) (17)
Google y Youtube (https://www.anerbarrena.com/programacion/recursos/google/) (8)
SEO (https://www.anerbarrena.com/programacion/recursos/seo/) (14)
Streaming (https://www.anerbarrena.com/programacion/recursos/streaming/) (3)
Twitter (https://www.anerbarrena.com/programacion/recursos/twitter/) (17)
WordPress (https://www.anerbarrena.com/programacion/recursos/wordpress/) (72)
Mejores plugins WordPress
(https://www.anerbarrena.com/programacion/recursos/wordpress/plugins/) (12)
WPO (https://www.anerbarrena.com/programacion/recursos/wpo/) (1)

Copyright @ Aner Barrena . Powered by WordPress and Valenti theme. Iconos diseñados por Freepik (http://www.freepik.com)

Política de cookies (https://www.anerbarrena.com/politica-de-cookies/)


Más información sobre las cookies (https://www.anerbarrena.com/mas-informacion-sobre-las-cookies/)
Contactar (https://www.anerbarrena.com/contactar/)

https://www.anerbarrena.com/mysql-create-index-5281/ 11/11

You might also like