Ajuste de índices de MySQL (1) conocimiento básico de índices

Conocimientos básicos de index

En la entrega ordinaria de proyectos externos, a menudo hacemos algunos POC para desarrollar rápidamente aplicaciones web relacionadas. Cada vez que diseñamos la estructura de la tabla de la biblioteca, consideraremos el uso de índices. El índice se usa bien, lo cual es una mejora cualitativa para el experiencia de consulta. A continuación se resume el índice. Algunos puntos de optimización, combinados con algunos casos simples (algunos archivos aprendidos antes), comparten

Ventajas de la indexación

  1. Reduzca en gran medida la cantidad de datos que el servidor necesita escanear
  2. Ayude al servidor a evitar la clasificación y las tablas temporales
  3. Convierta io aleatorio en io secuencial

Utilidad del índice

  1. Encuentre rápidamente filas que coincidan con la cláusula where
  2. Elimine las filas de la consideración, si puede elegir entre varios índices, mysql generalmente usa el índice que encuentra la menor cantidad de filas
  3. Si la tabla tiene un índice de varias columnas, el optimizador puede usar cualquier sufijo del extremo izquierdo del índice para encontrar la fila.
  4. Cuando hay un enlace de tabla, recupera datos de fila de otras tablas
  5. Encuentre el valor mínimo o máximo de una columna de índice específica
  6. Si la clasificación o agrupación se realiza en el prefijo más a la izquierda del índice disponible, la tabla se ordena y agrupa.
  7. En algunos casos, la consulta se puede optimizar para recuperar el valor sin consultar la fila de datos.

Clasificación de índice

  • Índice de clave primaria: denominada clave primaria, el original es CLAVE PRIMARIA, compuesto por una o más columnas, que se utiliza para identificar de forma única un registro en la tabla de datos. Una tabla no puede tener una clave principal, pero solo puede haber una clave principal como máximo, y el valor de la clave principal no puede contener NULL
  • Índice único: asegúrese de que no haya dos filas de datos en la tabla que tengan exactamente el mismo valor clave para ayudar a mantener la integridad de los datos
  • Índice ordinario: El índice más básico, sin restricciones, es el índice que usamos a menudo.
  • Índice de texto completo: el índice de texto completo (FULLTEXT) solo se puede aplicar a la tabla de datos del motor MyISAM, pero después de mysql5.7, innodb también lo admite, que actúa en columnas de tipos de datos CHAR, VARCHAR y TEXT.
  • Índice combinado: utilice varias columnas como un índice para la recuperación, utilizando el principio de coincidencia situado más a la izquierda.

Estructura de datos utilizada por el índice

  • Tabla de picadillo
  • Árbol B +
    Esta parte del seguimiento será un artículo separado para compartir.

Método de coincidencia de índices

Ejecute la siguiente declaración de creación de tabla:

create table staffs(
    id int primary key auto_increment,
    name varchar(24) not null default '' comment '姓名',
    age int not null default 0 comment '年龄',
    pos varchar(20) not null default '' comment '职位',
    add_time timestamp not null default current_timestamp comment '入职时间'
  ) charset utf8 comment '员工记录表';
-----------
alter table staffs add index idx_nap(name, age, pos);
  • Coincidencia de valor completo: la coincidencia de valor completo se refiere a la coincidencia con todas las columnas del índice, por ejemplo
    explain select * from staffs where name = 'July' and age = '23' and pos = 'dev';
  • Coincide con el prefijo más a la izquierda: solo haga coincidir las primeras columnas, por ejemplo:explain select * from staffs where name = 'July' and age = '23'; explain select * from staffs where name = 'July';
  • Coincidir con prefijo de columna: puede hacer coincidir el principio de un valor de columna, por ejemplo;explain select * from staffs where name like 'J%';explain select * from staffs where name like '%y';
  • Valor de rango coincidente: puede encontrar datos en un rango determinado,explain select * from staffs where name > 'Mary';
  • Coincide exactamente con una columna y el rango coincide con otra columna: puede consultar toda la primera columna y parte de la segunda columna, por ejemploexplain select * from staffs where name = 'July' and age > 25;
  • Consulta que solo accede al índice: Al realizar una consulta, solo necesita acceder al índice, sin acceder a la fila de datos, que es esencialmente un índice de cobertura, por ejemplo:explain select name,age,pos from staffs where name = 'July' and age = 25 and pos = 'dev';

Supongo que te gusta

Origin blog.csdn.net/sun6838693/article/details/115307491
Recomendado
Clasificación