<span id="mktg5"></span>

<i id="mktg5"><meter id="mktg5"></meter></i>

        <label id="mktg5"><meter id="mktg5"></meter></label>
        最新文章專題視頻專題問答1問答10問答100問答1000問答2000關鍵字專題1關鍵字專題50關鍵字專題500關鍵字專題1500TAG最新視頻文章推薦1 推薦3 推薦5 推薦7 推薦9 推薦11 推薦13 推薦15 推薦17 推薦19 推薦21 推薦23 推薦25 推薦27 推薦29 推薦31 推薦33 推薦35 推薦37視頻文章20視頻文章30視頻文章40視頻文章50視頻文章60 視頻文章70視頻文章80視頻文章90視頻文章100視頻文章120視頻文章140 視頻2關鍵字專題關鍵字專題tag2tag3文章專題文章專題2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章專題3
        問答文章1 問答文章501 問答文章1001 問答文章1501 問答文章2001 問答文章2501 問答文章3001 問答文章3501 問答文章4001 問答文章4501 問答文章5001 問答文章5501 問答文章6001 問答文章6501 問答文章7001 問答文章7501 問答文章8001 問答文章8501 問答文章9001 問答文章9501
        當前位置: 首頁 - 科技 - 知識百科 - 正文

        Mysql中SQL語句不使用索引的情況

        來源:懂視網 責編:小采 時間:2020-11-09 21:16:20
        文檔

        Mysql中SQL語句不使用索引的情況

        Mysql中SQL語句不使用索引的情況:MySQL查詢不使用索引匯總 眾所周知,增加索引是提高查詢速度的有效途徑,但是很多時候,即使增加了索引,查詢仍然不使用索引,這種情況嚴重影響性能,這里就簡單總結幾條MySQL不使用索引的情況 如果MySQL估計使用索引比全表掃描更慢,則不使用索引。例如,如
        推薦度:
        導讀Mysql中SQL語句不使用索引的情況:MySQL查詢不使用索引匯總 眾所周知,增加索引是提高查詢速度的有效途徑,但是很多時候,即使增加了索引,查詢仍然不使用索引,這種情況嚴重影響性能,這里就簡單總結幾條MySQL不使用索引的情況 如果MySQL估計使用索引比全表掃描更慢,則不使用索引。例如,如

        MySQL查詢不使用索引匯總

        眾所周知,增加索引是提高查詢速度的有效途徑,但是很多時候,即使增加了索引,查詢仍然不使用索引,這種情況嚴重影響性能,這里就簡單總結幾條MySQL不使用索引的情況

        如果MySQL估計使用索引比全表掃描更慢,則不使用索引。例如,如果列key均勻分布在1和100之間,下面的查詢使用索引就不是很好:select * from table_name where key>1 and key<90;

        如果使用MEMORY/HEAP表,并且where條件中不使用“=”進行索引列,那么不會用到索引,head表只有在“=”的條件下才會使用索引

        用or分隔開的條件,如果or前的條件中的列有索引,而后面的列沒有索引,那么涉及到的索引都不會被用到,例如:select * from table_name where key1='a' or key2='b';如果在key1上有索引而在key2上沒有索引,則該查詢也不會走索引

        復合索引,如果索引列不是復合索引的第一部分,則不使用索引(即不符合最左前綴),例如,復合索引為(key1,key2),則查詢select * from table_name where key2='b';將不會使用索引

        如果like是以‘%'開始的,則該列上的索引不會被使用。例如select * from table_name where key1 like '%a';該查詢即使key1上存在索引,也不會被使用

        如果列為字符串,則where條件中必須將字符常量值加引號,否則即使該列上存在索引,也不會被使用。例如,select * from table_name where key1=1;如果key1列保存的是字符串,即使key1上有索引,也不會被使用。

        從上面可以看出,即使我們建立了索引,也不一定會被使用,那么我們如何知道我們索引的使用情況呢??在MySQL中,有Handler_read_keyHandler_read_rnd_key兩個變量,如果Handler_read_key值很高而Handler_read_rnd_key的值很低,則表明索引經常不被使用,應該重新考慮建立索引。可以通過:show status like 'Handler_read%'來查看著連個參數的值。

        關于如何正確創建Mysql的索引,請參考怎樣正確創建MySQL索引的方法詳解;眾所周知,數據表索引可以提高數據的檢索效率,也可以降低數據庫的IO成本,并且索引還可以降低數據庫的排序成本;但索引并不是時時都會生效的,比如以下幾種情況,將導致索引失效:

        1.如果條件中有or,即使其中有條件帶索引也不會使用索引(這也是為什么SQL語句中盡量少用or的原因)

        注意:要想使用or,又想讓索引生效,只能將or條件中的每個列都加上索引。

        2.對于多列索引,不是使用的第一部分,則不會使用索引。

        3.like查詢是以%開頭時不會使用索引。

        4.如果列類型是字符串,那一定要在條件中將數據使用引號引用起來,否則不使用索引。

        5.如果 mysql 估計使用全表掃描要比使用索引快,則不使用索引。

        此外,查看索引的使用情況

        show status like 'Handler_read%';

        大家可以注意:

        handler_read_key:這個值越高越好,越高表示使用索引查詢到的次數。

        handler_read_rnd_next:這個值越高,說明查詢越低效。

        總結

        聲明:本網頁內容旨在傳播知識,若有侵權等問題請及時與本網聯系,我們將在第一時間刪除處理。TEL:177 7030 7066 E-MAIL:11247931@qq.com

        文檔

        Mysql中SQL語句不使用索引的情況

        Mysql中SQL語句不使用索引的情況:MySQL查詢不使用索引匯總 眾所周知,增加索引是提高查詢速度的有效途徑,但是很多時候,即使增加了索引,查詢仍然不使用索引,這種情況嚴重影響性能,這里就簡單總結幾條MySQL不使用索引的情況 如果MySQL估計使用索引比全表掃描更慢,則不使用索引。例如,如
        推薦度:
        標簽: 情況 的情況 sql
        • 熱門焦點

        最新推薦

        猜你喜歡

        熱門推薦

        專題
        Top
        主站蜘蛛池模板: selaoban在线视频免费精品| 亚洲欧美日韩中文无线码| eeuss在线兵区免费观看| 日韩中文无码有码免费视频 | 男人的好免费观看在线视频| 91亚洲va在线天线va天堂va国产| 久久国产精品成人片免费| 亚洲AV日韩AV高潮无码专区| 久久精品成人免费看| 亚洲无删减国产精品一区| 日韩在线播放全免费| 亚洲国产系列一区二区三区| 女人与禽交视频免费看 | 久久精品国产亚洲AV| 亚洲成人一区二区| 国产特黄一级一片免费| 亚洲va久久久噜噜噜久久| 1000部拍拍拍18勿入免费视频下载| 亚洲欧洲高清有无| 黑人粗长大战亚洲女2021国产精品成人免费视频 | 亚洲欧美日韩中文二区| 韩国二级毛片免费播放| 国产午夜亚洲精品不卡电影| 中文字幕亚洲日本岛国片| 免费无码VA一区二区三区| 亚洲综合校园春色| 免费人成网站7777视频| 在线观看免费视频一区| 亚洲日本在线播放| 又粗又大又硬又爽的免费视频| 成人久久久观看免费毛片| 亚洲AV日韩精品久久久久久久| 18禁成年无码免费网站无遮挡| 人妻无码中文字幕免费视频蜜桃| 亚洲线精品一区二区三区影音先锋| 久久久久免费看成人影片| 亚洲GV天堂GV无码男同| 亚洲精品无码mv在线观看网站| 免费看黄视频网站| 久久WWW免费人成—看片| 亚洲国产av高清无码|