Optimización de SQL de Mysql combate real EXPLICAR artículos

Tabla de contenido

EXPLIQUE

1. Optimización de una sola mesa

1. Primero cree una sola tabla 

2. Insertar datos

3. Escribe sql según las condiciones

4. Utilice EXPLAIN para analizar SQL

5. Iniciar la optimización 

6. La optimización está completa.


EXPLIQUE

 

ps: Este blog registra la optimización de SQL en el combate real, el conocimiento teórico relevante se resume en otros artículos, y algunas palabras clave o puntos de conocimiento no se explicarán una por una.

1. Optimización de una sola mesa

1. Primero cree una sola tabla 

CREATE TABLE `article` (
  `id` int(10) NOT NULL,
  `author_id` int(10) DEFAULT NULL COMMENT '作者ID',
  `category_id` int(10) DEFAULT NULL COMMENT '分组ID',
  `views` varchar(10) DEFAULT NULL COMMENT '浏览次数',
  `comments` varchar(10) DEFAULT NULL COMMENT '备注',
  `title` varchar(255) DEFAULT NULL COMMENT '标题',
  `content` varchar(1000) DEFAULT NULL COMMENT '正文',
  PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;

2. Insertar datos

INSERT INTO `explain`.`article` (`id`, `author_id`, `category_id`, `views`, `comments`, `title`, `content`) VALUES ('1', '1', '1', '1', '1', '1', '1');
INSERT INTO `explain`.`article` (`id`, `author_id`, `category_id`, `views`, `comments`, `title`, `content`) VALUES ('2', '2', '2', '2', '2', '2', '2');
INSERT INTO `explain`.`article` (`id`, `author_id`, `category_id`, `views`, `comments`, `title`, `content`) VALUES ('3', '3', '3', '3', '3', '3', '3');
INSERT INTO `explain`.`article` (`id`, `author_id`, `category_id`, `views`, `comments`, `title`, `content`) VALUES ('4', '4', '4', '4', '4', '4', '4');
INSERT INTO `explain`.`article` (`id`, `author_id`, `category_id`, `views`, `comments`, `title`, `content`) VALUES ('5', '5', '5', '5', '5', '5', '5');

3. Escribe sql según las condiciones

Cuando la consulta category_id es 2 y los comentarios son mayores que 1, el author_id con más vistas

SELECT a.author_id FROM `article` a WHERE a.category_id=2 AND a.comments >1 ORDER BY a.views LIMIT 1;

4. Utilice EXPLAIN para analizar SQL

1. No se utiliza ningún índice, el peor resultado de la consulta de la tabla completa. 2. El uso de la clasificación de archivos debe optimizarse por motivos específicos, consulte el blog anterior.

5. Iniciar la optimización 

1. Crea un índice

La figura anterior usa tres campos, cree un índice compuesto para incluir estos tres campos

2. Ver la estructura del índice

3. Vuelve a comprobar

Análisis: se usa el índice, se procesa el escaneo completo de la tabla, pero no se resuelve el orden de uso de archivos, pero el índice no es válido porque los comentarios son una consulta de rango, por ejemplo: los tres campos son el primer, segundo y tercer piso, el primer piso está en uso normal y el segundo piso no se puede usar. La clasificación no puede usar la clasificación interna del índice, y se usa la clasificación de archivos.

4. Eliminación de índice

Debido a que el índice creado no pudo resolver el ordenamiento de archivos en uso en Extra, es necesario eliminar y volver a crear el índice.

Ver estructura de índice

5. Cree un índice nuevo

Debido a que el índice ccv no se puede resolver, suponiendo que se omita la consulta de rango intermedio para crear un índice CV

6. La optimización está completa.

Supongo que te gusta

Origin blog.csdn.net/LiuY521/article/details/114138259
Recomendado
Clasificación