麻豆小视频在线观看_中文黄色一级片_久久久成人精品_成片免费观看视频大全_午夜精品久久久久久久99热浪潮_成人一区二区三区四区

首頁 > 學(xué)院 > 開發(fā)設(shè)計 > 正文

MySQL的索引單表優(yōu)化案例分析

2019-11-09 16:02:52
字體:
供稿:網(wǎng)友

建表

建立本次優(yōu)化案例中所需的數(shù)據(jù)庫及數(shù)據(jù)表CREATE DATABASE db0206;USE db0206;CREATE TABLE `db0206`.`article`( `id` INT(11) NOT NULL AUTO_INCREMENT, `author_id` INT(11) UNSIGNED NOT NULL, `category_id` INT(11) UNSIGNED NOT NULL, `views` INT(11) UNSIGNED NOT NULL, `comments` INT(11) UNSIGNED NOT NULL, `title` VARCHAR(255) NOT NULL, `content` TEXT NOT NULL, PRIMARY KEY (`id`)) ENGINE=INNODB CHARSET=utf8;INSERT INTO `db0206`.`article` (`id`, `author_id`, `category_id`, `views`, `comments`, `title`, `content`) VALUES (NULL, '1', '1', '1', '1', '1', '1');INSERT INTO `db0206`.`article` (`id`, `author_id`, `category_id`, `views`, `comments`, `title`, `content`) VALUES (NULL, '2', '2', '2', '2', '2', '2');INSERT INTO `db0206`.`article` (`id`, `author_id`, `category_id`, `views`, `comments`, `title`, `content`) VALUES (NULL, '3', '3', '3', '3', '3', '3');

單表索引分析

下面我們來執(zhí)行這條sql:查詢category_id為1,且comments大于1的情況下,views最多的article_idSELECT id,author_id FROM article WHERE category_id = 1 AND comments > 1 ORDER BY views DESC LIMIT 1;通過explain命令來查看sql查詢優(yōu)化信息EXPLAIN SELECT id,author_id FROM article WHERE category_id = 1 AND comments > 1 ORDER BY views DESC LIMIT 1;sql查詢優(yōu)化信息

sql查詢分析

結(jié)論:很顯然type是ALL,即最壞情況。Extra里還出現(xiàn)Using filesort(文件內(nèi)排序),也是最壞情況,所以優(yōu)化是必須的。

開始優(yōu)化

1.1新建索引+刪除索引

建立索引的SQL語句CREATE INDEX idx_article_ccv ON article (category_id,comments,views);再次執(zhí)行查詢分析sqlEXPLAIN SELECT id,author_id FROM article WHERE category_id = 1 AND comments > 1 ORDER BY views DESC LIMIT 1;查詢分析結(jié)果

第一次優(yōu)化結(jié)果

結(jié)論: type變成了range,這是可以忍受的。但是extra里使用了Using filesort 仍然是無法接受的。 但是我們已經(jīng)建立的索引,為啥沒有用呢? 這是因為按照BTree索引的工作原理 先排序category_id, 如果遇到相同的category_id則再排序comments,如果遇到相同的commetns則再排序views 當(dāng)comments字段在聯(lián)合索引中處于中間位置時, 因為comments > 1 條件是一個范圍值(所謂的range), MySQL無法利用索引再對后面的views部分進行檢索,即range類型查詢字段后面索引無效。

1.2 第二次優(yōu)化

刪除不合適的索引DROP INDEX idx_article_ccv ON article;重新建立索引CREATE INDEX idx_article_cv ON article(category_id,views);

-重新執(zhí)行查詢分析

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

查詢分析結(jié)果 優(yōu)化成功

結(jié)論: 根據(jù)MySQL的查詢分析報告可知,使用當(dāng)前建立的索引,達到了type=ref,且extra中沒有出現(xiàn)Using filesort,因此,我們現(xiàn)在使用的索引結(jié)構(gòu)達到了最優(yōu)的情況。


發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
主站蜘蛛池模板: 亚洲视屏在线观看 | 亚洲aⅴ在线观看 | 黄色网址电影 | 国产毛片在线看 | av电影直播| 日本欧美国产 | 免费观看视频网站 | av在线免费观看中文字幕 | 欧美久久久一区二区三区 | 黄色大片网 | 黄色高清免费 | 国产精品久久久久久久久久 | 天堂福利电影 | 久久精品国产99久久久古代 | 一级免费黄色免费片 | 九九热精品视频在线 | 91九色视频观看 | 毛片免费视频观看 | 欧美一级片在线 | 久久成年人视频 | 国产乱free国语对白 | 可以免费看的av | 黄视频在线网站 | 夜夜夜精品视频 | 精品69人人人人 | 久久久久久免费 | 一级黄色大片在线观看 | 午夜爽爽爽男女免费观看hd | 91网址在线观看 | 日本免费一区二区三区四区 | 一级黄色国产视频 | 日韩毛片免费观看 | 欧美一级做性受免费大片免费 | 日韩.www| 久久国产精品二区 | 欧美成人a | 久久国产精品久久精品国产演员表 | 欧美成视频在线观看 | 免费视频一区 | 欧美日韩一区三区 | 国产亚洲精品综合一区91 |