<em>Mac</em>Book项目 2009年学校开始实施<em>Mac</em>Book项目,所有师生配备一本<em>Mac</em>Book,并同步更新了校园无线网络。学校每周进行电脑技术更新,每月发送技术支持资料,极大改变了教学及学习方式。因此2011
2021-06-01 09:32:01
索引是資料庫優化最常用也是最重要的手段之一,通過索引通常可以幫助使用者解決大多數的MySQL的效能優化問題。
use world; create table tb_seller( sellerid varchar(100), name varchar(100), nickname varchar(50), password varchar(60), status varchar(1), address varchar(100), createtime datetime, primary key(sellerid) ); insert into tb_seller values('alibaba','阿里巴巴','阿里小店','e10adc3949ba59abbe057f20f883e','1','北京市','2088-01-01 12:00:00'), ('baidu','百度科技有限公司','百度小店','e10adc3949ba59abbe057f20f883e','1','北京市','2088-01-01 12:00:00'), ('huawei','華為科技有限公司','華為小店','e10adc3949ba59abbe057f20f883e','0','北京市','2088-01-01 12:00:00'), ('itcast','傳智播客教育科技有限公司','傳智播客','e10adc3949ba59abbe057f20f883e','1','北京市','2088-01-01 12:00:00'), ('itheima','黑馬程式設計師','黑馬程式設計師','e10adc3949ba59abbe057f20f883e','0','北京市','2088-01-01 12:00:00'), ('luoji','羅技科技有限公司','羅技小店','e10adc3949ba59abbe057f20f883e','1','北京市','2088-01-01 12:00:00'), ('oppo','oppo科技有限公司','oppo官方旗艦店','e10adc3949ba59abbe057f20f883e','0','北京市','2088-01-01 12:00:00'), ('ourpalm','掌趣科技股份有限公司','掌趣小店','e10adc3949ba59abbe057f20f883e','1','北京市','2088-01-01 12:00:00'), ('qiandu','千度科技','千度小店','e10adc3949ba59abbe057f20f883e','2','北京市','2088-01-01 12:00:00'), ('sina','新浪科技有限公司','新浪官方旗艦店','e10adc3949ba59abbe057f20f883e','1','北京市','2088-01-01 12:00:00'), ('xiaomi','小米科技','小米官方旗艦店','e10adc3949ba59abbe057f20f883e','1','西安市','2088-01-01 12:00:00'), ('yijia','宜家家居','宜家官方旗艦店','e10adc3949ba59abbe057f20f883e','1','北京市','2088-01-01 12:00:00'); -- 建立組合索引 create index index_seller_name_sta_addr on tb_seller(name,status,address);
該情況下,索引生效,執行效率高。
-- 避免索引失效應用-全值匹配 -- 全值匹配,和欄位匹配成功即可,和欄位順序無關 explain select * from tb_seller ts where name ='小米科技' and status ='1' and address ='北京市'; explain select * from tb_seller ts where status ='1' and name ='小米科技' and address ='北京市';
該情況下,索引生效,執行效率高。
-- 避免索引失效應用-最左字首法則 -- 如果索引了多列,要遵守最左字首法則,指的是查詢從索引的最左前列開始,並且不跳過索引中的列 explain select * from tb_seller ts where name='小米科技';-- key_lem:403 explain select * from tb_seller ts where name='小米科技' and status ='1';-- key_lem:410 explain select * from tb_seller ts where status ='1' and name='小米科技' ;-- key_lem:410,依然跟順序無關 -- 違反最左字首法則,索引失效 explain select * from tb_seller ts where status ='1';-- 違反最左字首法則,索引失效 -- 如果符合最左字首法則,但是出現跳躍某一列,只有最左列索引生效 explain select * from tb_seller where name='小米科技' and address='北京市';-- key_lem:403
該情況下,索引生效,執行效率高。
1、情況一
-- 避免索引失效應用-其他匹配原則 -- 範圍查詢右邊的列,不能使用索引 explain select * from tb_seller where name= '小米科技' and status >'1' and address='北京市';-- key_lem:410,沒有使用status這個索引 -- 不要在索引列上進行運算操作,索引將失效。 explain select * from tb_seller where substring(name,3,2) ='科技';-- 沒有使用索引 -- 字串不加單引號,造成索引失效。 explain select * from tb_seller where name='小米科技' and status = 1 ;-- key_lem:403,沒有使用status這個索引
2、 情況二
explain中的extra列
extra | 含義 |
using filesort | 說明mysq|會對資料使用一個外部的索引排序,而不是按照表內的索引順序進行讀取,稱為“檔案排序" ,效率低。 |
using temporary | 需要建立臨時表(temporary table)來暫存中間結果,常見於order by和group by;效率低 |
using index | SQL所需要返回的所有列資料均在一棵索引樹上,避免存取表的資料行,效率不錯 |
using where | 在查詢使用索引的情況下,需要回表去查詢所需的資料 |
using index condition | 查詢使用了索引,但是需要回表查詢資料 |
using index;using where | 查詢使用了索引,但是需要的資料都在索引列中能找到,所以不需要回表查詢資料 |
但是再加有個password
3、情況三
4、情況四
5、 如果MySQL評估使用索引比全表更慢,則不使用索引。is NULL , is NOT NULL有時有效,有時索引失效。in走索引,not in索引失效。單列索引和複合索引,儘量使用符合索引
驗證
建立了單一的三個索引,最後面where全使用了但explain顯示只用了index_name
到此這篇關於MySQL中索引的優化的範例詳解的文章就介紹到這了,更多相關MySQL索引優化內容請搜尋it145.com以前的文章或繼續瀏覽下面的相關文章希望大家以後多多支援it145.com!
相關文章
<em>Mac</em>Book项目 2009年学校开始实施<em>Mac</em>Book项目,所有师生配备一本<em>Mac</em>Book,并同步更新了校园无线网络。学校每周进行电脑技术更新,每月发送技术支持资料,极大改变了教学及学习方式。因此2011
2021-06-01 09:32:01
综合看Anker超能充系列的性价比很高,并且与不仅和iPhone12/苹果<em>Mac</em>Book很配,而且适合多设备充电需求的日常使用或差旅场景,不管是安卓还是Switch同样也能用得上它,希望这次分享能给准备购入充电器的小伙伴们有所
2021-06-01 09:31:42
除了L4WUDU与吴亦凡已经多次共事,成为了明面上的厂牌成员,吴亦凡还曾带领20XXCLUB全队参加2020年的一场音乐节,这也是20XXCLUB首次全员合照,王嗣尧Turbo、陈彦希Regi、<em>Mac</em> Ova Seas、林渝植等人全部出场。然而让
2021-06-01 09:31:34
目前应用IPFS的机构:1 谷歌<em>浏览器</em>支持IPFS分布式协议 2 万维网 (历史档案博物馆)数据库 3 火狐<em>浏览器</em>支持 IPFS分布式协议 4 EOS 等数字货币数据存储 5 美国国会图书馆,历史资料永久保存在 IPFS 6 加
2021-06-01 09:31:24
开拓者的车机是兼容苹果和<em>安卓</em>,虽然我不怎么用,但确实兼顾了我家人的很多需求:副驾的门板还配有解锁开关,有的时候老婆开车,下车的时候偶尔会忘记解锁,我在副驾驶可以自己开门:第二排设计很好,不仅配置了一个很大的
2021-06-01 09:30:48
不仅是<em>安卓</em>手机,苹果手机的降价力度也是前所未有了,iPhone12也“跳水价”了,发布价是6799元,如今已经跌至5308元,降价幅度超过1400元,最新定价确认了。iPhone12是苹果首款5G手机,同时也是全球首款5nm芯片的智能机,它
2021-06-01 09:30:45