十年網(wǎng)站開(kāi)發(fā)經(jīng)驗(yàn) + 多家企業(yè)客戶 + 靠譜的建站團(tuán)隊(duì)
量身定制 + 運(yùn)營(yíng)維護(hù)+專(zhuān)業(yè)推廣+無(wú)憂售后,網(wǎng)站問(wèn)題一站解決
怎么在Mysql中使用explain分析索引的走向?相信很多沒(méi)有經(jīng)驗(yàn)的人對(duì)此束手無(wú)策,為此本文總結(jié)了問(wèn)題出現(xiàn)的原因和解決方法,通過(guò)這篇文章希望你能解決這個(gè)問(wèn)題。
準(zhǔn)備工作
1、用戶表一張,有uid ,user_name,real_name ,eamil等字段,詳細(xì)見(jiàn)建表語(yǔ)句
2、在user_name字段下增加一個(gè)簡(jiǎn)單索引user_name,在email,mobile,age三個(gè)字段下增加索引complex_index
3、表引擎使用MyISAM,增加
4、準(zhǔn)備97000條數(shù)據(jù)(具體的可以根據(jù)實(shí)際情況來(lái)定數(shù)據(jù)量,這里準(zhǔn)備的是97000+)
5、實(shí)驗(yàn)工具Navcat
建表語(yǔ)句
DROP TABLE IF EXISTS `qz_users`; CREATE TABLE `qz_users` ( `uid` int(11) unsigned NOT NULL AUTO_INCREMENT COMMENT '用戶的 UID', `user_name` varchar(255) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '用戶名', `real_name` varchar(128) CHARACTER SET utf8 DEFAULT NULL COMMENT '用戶姓名', `email` varchar(255) CHARACTER SET utf8 DEFAULT NULL COMMENT 'EMAIL', `mobile` varchar(16) CHARACTER SET utf8 DEFAULT NULL COMMENT '用戶手機(jī)', `password` varchar(32) CHARACTER SET utf8 DEFAULT NULL COMMENT '用戶密碼', `salt` varchar(16) CHARACTER SET utf8 DEFAULT NULL COMMENT '用戶附加混淆碼', `avatar_file` varchar(128) CHARACTER SET utf8 DEFAULT NULL COMMENT '頭像文件', `sex` tinyint(1) DEFAULT NULL COMMENT '性別', `birthday` int(10) DEFAULT NULL COMMENT '生日', PRIMARY KEY (`uid`), KEY `user_name` (`user_name`(250)), KEY `complex_index` (`email`,`mobile`,`sex`) ) ENGINE=MyISAM AUTO_INCREMENT=1 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
準(zhǔn)備的查詢語(yǔ)句
explain select * from qz_users where user_name = "ryanhe"; explain select * from qz_users where email = "x"; explain select * from qz_users where email = "x" and mobile = "x" and sex=1; explain select * from qz_users where email = "x" and mobile = "x"; explain select * from qz_users where email = "x" and sex = "x"; explain select * from qz_users where sex = "x" and mobile = "x"; explain select * from qz_users where mobile = "x" and sex = "0";
結(jié)果分析
使用 user_name 條件
explain select * from qz_users where user_name= "x";
結(jié)果
分析
是否走索引 | 索引名稱 | 掃描記錄數(shù) |
---|---|---|
是 | user_name | 1 |
使用 email 條件
explain select * from qz_users where email = "x";
結(jié)果
分析
是否走索引 | 索引名稱 | 掃描記錄數(shù) |
---|---|---|
是 | complex_index | 7 |
使用 email + mobile + sex條件
explain select * from qz_users where email = "x" and mobile = "x" and sex=1;
結(jié)果
分析
是否走索引 | 索引名稱 | 掃描記錄數(shù) |
---|---|---|
是 | complex_index | 1 |
使用 email + mobile 條件
explain select * from qz_users where email = "x" and mobile = "x";
結(jié)果
分析
是否走索引 | 索引名稱 | 掃描記錄數(shù) |
---|---|---|
是 | complex_index | 7 |
使用 email + sex 條件
explain select * from qz_users where email = "x" and sex = "x";
結(jié)果
分析
][3] 是否走索引 | 索引名稱 | 掃描記錄數(shù) |
---|---|---|
是 | complex_index | 7 |
使用 sex + mobile 條件
explain select * from qz_users where sex = "x" and mobile = "x";
結(jié)果
分析
是否走索引 | 索引名稱 | 掃描記錄數(shù) |
---|---|---|
否 | 97185 |
使用 mobile+ sex 條件
explain select * from qz_users where mobile = "18602199680" and sex = "0";
結(jié)果
分析
是否走索引 | 索引名稱 | 掃描記錄數(shù) |
---|---|---|
否 | 97185 |
看完上述內(nèi)容,你們掌握怎么在Mysql中使用explain分析索引的走向的方法了嗎?如果還想學(xué)到更多技能或想了解更多相關(guān)內(nèi)容,歡迎關(guān)注創(chuàng)新互聯(lián)成都網(wǎng)站設(shè)計(jì)公司行業(yè)資訊頻道,感謝各位的閱讀!
另外有需要云服務(wù)器可以了解下創(chuàng)新互聯(lián)scvps.cn,海內(nèi)外云服務(wù)器15元起步,三天無(wú)理由+7*72小時(shí)售后在線,公司持有idc許可證,提供“云服務(wù)器、裸金屬服務(wù)器、高防服務(wù)器、香港服務(wù)器、美國(guó)服務(wù)器、虛擬主機(jī)、免備案服務(wù)器”等云主機(jī)租用服務(wù)以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡(jiǎn)單易用、服務(wù)可用性高、性價(jià)比高”等特點(diǎn)與優(yōu)勢(shì),專(zhuān)為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應(yīng)用場(chǎng)景需求。