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

首頁 > 學院 > 開發設計 > 正文

MySQL的索引單表優化案例分析

2019-11-09 17:13:31
字體:
來源:轉載
供稿:網友

建表

建立本次優化案例中所需的數據庫及數據表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');

單表索引分析

下面我們來執行這條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查詢優化信息EXPLAIN SELECT id,author_id FROM article WHERE category_id = 1 AND comments > 1 ORDER BY views DESC LIMIT 1;sql查詢優化信息

sql查詢分析

結論:很顯然type是ALL,即最壞情況。Extra里還出現Using filesort(文件內排序),也是最壞情況,所以優化是必須的。

開始優化

1.1新建索引+刪除索引

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

第一次優化結果

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

1.2 第二次優化

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

-重新執行查詢分析

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

查詢分析結果 優化成功

結論: 根據MySQL的查詢分析報告可知,使用當前建立的索引,達到了type=ref,且extra中沒有出現Using filesort,因此,我們現在使用的索引結構達到了最優的情況。


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 狠狠干夜夜草 | xnxx 日本免费| 国产精品免费观在线 | 综合精品久久 | 日韩不卡一区二区 | 国产一级小视频 | 天天夜夜草 | 青青草成人影视 | 午夜视频播放 | 狠狠干91 | 国产喷白浆10p | gogo全球大胆高清人露出91 | 久久综合综合久久 | 久久不射电影网 | 色婷婷久久久 | 欧美成人免费在线视频 | 日本黄色大片免费 | 日韩2区| 综合在线一区 | 中文字幕在线网站 | 红杏亚洲影院一区二区三区 | 久久久久九九九女人毛片 | 日本欧美一区二区三区在线观看 | 双性精h调教灌尿打屁股的文案 | 毛片毛片 | 久久综合久久综合久久 | 欧美另类69xxxxx 视频 | 国产精品久久久久久久av三级 | 中午字幕无线码一区2020 | 日韩黄色免费在线观看 | 国产成人精品一区二区视频免费 | 欧美日本在线视频 | 欧美日韩高清不卡 | 国产精品片一区二区三区 | chengrenzaixian| 久久久国产一区二区三区 | 男女一边摸一边做羞羞视频免费 | 精国产品一区二区三区 | 天天草天天干天天 | 精品69人人人人 | 亚洲激情91 |