第三节:MySQL索引优化规则套路实战1(索引分析、索引失效、查询优化)

一. 索引分析

1. 单表索引分析

 数据准备:创建arcile表,并插入数据。

第三节:MySQL索引优化规则套路实战1(索引分析、索引失效、查询优化)
--创建arctile表,并插入数据
DROP TABLE IF EXISTS `article`;
CREATE TABLE IF NOT EXISTS `article`(
`id` INT(10) UNSIGNED NOT NULL PRIMARY KEY AUTO_INCREMENT COMMENT '主键',
`author_id` INT(10) UNSIGNED NOT NULL COMMENT '作者id',
`category_id` INT(10) UNSIGNED NOT NULL COMMENT '分类id',
`views` INT(10) UNSIGNED NOT NULL COMMENT '被查看的次数',
`comments` INT(10) UNSIGNED NOT NULL COMMENT '回帖的备注',
`title` VARCHAR(255) NOT NULL COMMENT '标题',
`content` VARCHAR(255) NOT NULL COMMENT '正文内容'
) COMMENT '文章';
--插入数据
INSERT INTO `article`(`author_id`, `category_id`, `views`, `comments`, `title`,`content`) VALUES(1,1,1,1,'1','1');
INSERT INTO `article`(`author_id`, `category_id`, `views`, `comments`, `title`,`content`) VALUES(2,2,2,2,'2','2');
INSERT INTO `article`(`author_id`, `category_id`, `views`, `comments`, `title`,`content`) VALUES(3,3,3,3,'3','3');
INSERT INTO `article`(`author_id`, `category_id`, `views`, `comments`, `title`,`content`) VALUES(1,1,3,3,'3','3');
INSERT INTO `article`(`author_id`, `category_id`, `views`, `comments`, `title`,`content`) VALUES(1,1,4,4,'4','4');
View Code

 

(1).  查询 category_id 为1且 comments 大于1的情况下, views 最多的 article_id 。

SELECT id,author_id FROM article WHERE category_id = 1 AND comments > 1 ORDER BY views DESC LIMIT 1;

 

分析执行计划如下:

第三节:MySQL索引优化规则套路实战1(索引分析、索引失效、查询优化)

 

 

剖析:该语句全表扫描了,并且用到了文件内排序,需要优化。 

(2).

 

(3).

 

(4).

 

(5). 

 

 

 

2. 两表索引分析

 

 

 

 

3. 三表索引分析 

 

 

 

 

二. 索引失效

 

 

 

 

 

 

 

 

 

 

 

三. 查询优化

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

!

  • 作       者 : Yaopengfei(姚鹏飞)
  • 博客地址 : http://www.cnblogs.com/yaopengfei/
  • 声     明1 : 如有错误,欢迎讨论,请勿谩骂^_^。
  • 声     明2 : 原创博客请在转载时保留原文链接或在文章开头加上本人博客地址,否则保留追究法律责任的权利。
 

 

上一篇:Django基础教程


下一篇:jquery获取选中select的文本,值等