Notas de estudio de la base de datos (siete, características de índice)

Para mejorar el rendimiento de la base de datos, el índice es algo barato. No es necesario agregar memoria, no es necesario modificar el programa, no es necesario ajustar sql, siempre que se ejecute el índice de creación correcto, la velocidad de consulta puede aumentar cientos o miles de veces. Pero no hay almuerzo gratis en el mundo. El aumento en la velocidad de las consultas tiene el costo de la velocidad de inserción, actualización y eliminación. Estas operaciones de escritura aumentan mucho la IO. Por tanto, su valor radica en mejorar la velocidad de recuperación de una gran cantidad de datos.
Los índices comunes se dividen en:

  • Índice de clave principal (clave principal)
  • Índice único (único)
  • Índice ordinario (índice)
  • Índice de texto completo (texto completo): resuelve el problema del índice de texto de neutrones.
    1. Principio del índice:
    Notas de estudio de la base de datos (siete, características de índice)

Descripción del índice:

  • Los índices ocupan espacio en disco.
  • Al agregar un registro, además de agregar a la tabla, pero también para mantener el árbol binario, la velocidad tiene un impacto, pero no mucho.
  • Cuando agregamos un índice, no podemos resolver todos los problemas de consulta y necesitamos indexar los campos por separado.
  • El índice se basa en el espacio para el tiempo.

2. Crear índice
1. Índice de clave principal
1) Al crear la tabla, especifique la clave principal directamente después del nombre del campo

create table user1(id int primary key, name varchar(30));

2) Al final de la creación de la tabla, especifique una columna o columnas como índice de clave principal

create table user2(id int, name varchar(30), primary key(id));
create table user3(id int, name varchar(30)); 
创建表以后再添加主键 
alter table user3 add primary key(id); 

Las características del índice de clave primaria:

  • En una tabla, hay como máximo un índice de clave principal, por supuesto, puede hacerlo coherente con la clave principal
  • Alta eficiencia del índice de clave principal (la clave principal no se puede repetir)
  • Cree una columna de índice de clave principal, su valor no puede ser nulo y no se puede repetir
  • Las columnas del índice de clave principal son básicamente int

2. Índice de clave única
1) Cuando se define la tabla, especifique el atributo único directamente después de una determinada columna.

create table user4(id int primary key, name varchar(30) unique);

2) Al crear una tabla, especifique una columna o algunas columnas como únicas después de la tabla

create table user5(id int primary key, name varchar(30), unique(name));

3)

create table user6(id int primary key, name varchar(30)); 
alter table user6 add unique(name);

Características del índice único:

  • Puede haber varios índices únicos en una tabla
  • Alta eficiencia de consulta
  • Si crea un índice único en una columna, debe asegurarse de que esta columna no pueda tener datos duplicados
  • Si no se especifica nulo en un índice único, es equivalente al índice de clave primaria

Tres, creación de índice ordinario
1)

create table user8(id int primary key, 
name varchar(20), email varchar(30), 
index(name) --在表的定义最后,指定某列为索引 
);

2)

create table user9(id int primary key, name varchar(20), email varchar(30)); 
alter table user9 add index(name); --创建完表以后指定某列为普通索引

3)

create table user10(id int primary key, name varchar(20), email varchar(30)); 
-- 创建一个索引名为 idx_name 的索引 
create index idx_name on user10(name);

Las características del índice ordinario:

  • Puede haber varios índices ordinarios en una tabla, y los índices ordinarios se utilizan más en el desarrollo real
  • Si una columna necesita crear un índice, pero la columna tiene valores duplicados, entonces deberíamos usar un índice normal

4. Índice de texto completo
Al buscar campos de artículos o campos con una gran cantidad de texto, se utilizará el índice de texto completo. MySQL proporciona un mecanismo de indexación de texto completo, pero existen requisitos de que el motor de almacenamiento de la tabla debe ser MyISAM, y el índice de texto completo predeterminado admite inglés, no chino. Para la búsqueda de texto completo en chino, puede utilizar la versión china de Sphinx (coreseek).

CREATE TABLE articles ( 
            id INT UNSIGNED AUTO_INCREMENT NOT NULL PRIMARY KEY, 
            title VARCHAR(200), 
            body TEXT, 
            FULLTEXT (title,body) 
)engine=MyISAM;

3. Consultar el índice
1) mostrar las claves del nombre de la tabla;
2) mostrar el índice del nombre de la tabla;
3) (la información se abrevia) el nombre de la tabla desc;
4. eliminar el índice
1) eliminar el índice de la clave primaria: modificar el nombre de la tabla de la tabla quitar la clave primaria;
2 ) Eliminar otros índices: modificar el nombre de la tabla eliminar el nombre del índice del índice; el nombre del índice es el campo Key_name en el show keys from table name

mysql> alter table user10 drop index idx_name;

3) soltar el nombre del índice del índice en el nombre de la tabla

mysql> drop index name on user8;

5. El principio de creación de un índice

  • Los campos que se utilizan con frecuencia como condiciones de consulta deben indexarse
  • Los campos con poca unicidad no son adecuados para crear índices por separado, incluso si se utilizan con frecuencia como condiciones de consulta
  • Los campos que se actualizan con mucha frecuencia no son adecuados para la creación de índices
  • Los campos que no aparecen en la cláusula where no deben indexarse

Supongo que te gusta

Origin blog.51cto.com/14289397/2545138
Recomendado
Clasificación