Tabla de contenido
1. Optimización de una sola mesa
1. Primero cree una sola tabla
3. Escribe sql según las condiciones
4. Utilice EXPLAIN para analizar SQL
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