婷婷综合国产,91蜜桃婷婷狠狠久久综合9色 ,九九九九九精品,国产综合av

主頁 > 知識庫 > MySQL查詢條件中in會用到索引嗎

MySQL查詢條件中in會用到索引嗎

熱門標簽:400電話可以免費申請嗎 電銷卡外呼系統供應商 怎么在地圖標注位置生成圖片 騰訊地圖標注提升 福建外呼系統定制化 美國反騷擾電話機器人 銅陵防封電銷卡 真人語音電話機器人 悟空科技電話機器人

當用人問你MySQL 查詢條件中 in 會不會用到索引,你該怎么回答?

答案:可能會用到索引

動手來測試下

1.創建一張表,給字段port建立索引

CREATE TABLE `pre_request_logs_20180524` (
 `id` int(11) NOT NULL AUTO_INCREMENT,
 `ip` char(16) NOT NULL COMMENT '代理IP',
 `port` int(8) NOT NULL COMMENT '端口號',
 `status` enum('成功','失敗') NOT NULL COMMENT '狀態',
 `create_time` datetime NOT NULL COMMENT '創建時間',
 `update_time` datetime DEFAULT NULL ON UPDATE CURRENT_TIMESTAMP,
 PRIMARY KEY (`id`),
 KEY `idx_port` (`port`) USING BTREE
) ENGINE=InnoDB AUTO_INCREMENT=13 DEFAULT CHARSET=utf8 COMMENT='代理IP請求日志';

插入測試數據

INSERT INTO ``(`id`, `ip`, `port`, `status`, `create_time`, `update_time`) VALUES (1, '192.168.1.199', 53149, '失敗', '2018-05-24 14:55:34', '2018-11-16 10:58:13');
INSERT INTO ``(`id`, `ip`, `port`, `status`, `create_time`, `update_time`) VALUES (2, '192.168.1.100', 10653, '成功', '2018-05-24 14:55:54', '2018-11-16 10:58:13');
INSERT INTO ``(`id`, `ip`, `port`, `status`, `create_time`, `update_time`) VALUES (3, '192.168.1.112', 50359, '失敗', '2018-05-24 14:56:00', '2018-11-16 10:58:13');
INSERT INTO ``(`id`, `ip`, `port`, `status`, `create_time`, `update_time`) VALUES (4, '192.168.1.67', 30426, '失敗', '2018-05-24 14:56:09', '2018-11-16 10:58:13');
INSERT INTO ``(`id`, `ip`, `port`, `status`, `create_time`, `update_time`) VALUES (5, '192.168.1.209', 49323, '失敗', '2018-05-24 14:56:12', '2018-11-16 10:58:13');
INSERT INTO ``(`id`, `ip`, `port`, `status`, `create_time`, `update_time`) VALUES (6, '192.168.1.209', 51161, '成功', '2018-05-24 14:56:13', '2018-11-16 10:58:13');
INSERT INTO ``(`id`, `ip`, `port`, `status`, `create_time`, `update_time`) VALUES (7, '192.168.1.12', 54167, '成功', '2018-05-24 14:56:16', '2018-11-16 10:58:13');
INSERT INTO ``(`id`, `ip`, `port`, `status`, `create_time`, `update_time`) VALUES (8, '192.168.1.64', 20462, '成功', '2018-05-24 14:56:19', '2018-11-16 10:58:13');
INSERT INTO ``(`id`, `ip`, `port`, `status`, `create_time`, `update_time`) VALUES (9, '192.168.1.53', 22823, '失敗', '2018-05-24 14:56:31', '2018-11-16 10:58:13');
INSERT INTO ``(`id`, `ip`, `port`, `status`, `create_time`, `update_time`) VALUES (10, '192.168.1.85', 48229, '成功', '2018-05-24 14:56:32', '2018-11-16 11:01:11');
INSERT INTO ``(`id`, `ip`, `port`, `status`, `create_time`, `update_time`) VALUES (11, '192.168.1.85', 48229, '成功', '2018-05-24 14:56:32', '2018-11-16 11:01:15');
INSERT INTO ``(`id`, `ip`, `port`, `status`, `create_time`, `update_time`) VALUES (12, '192.168.1.85', 48229, '成功', '2018-05-24 14:56:32', '2018-11-16 13:34:37');

2.測試sql

explain select * from pre_request_logs_20180524 where port in (51161,20462,48229);

執行結果

從結果來看是沒有用到索引,但不要著急下結論,再看二個sql

select * from pre_request_logs_20180524 where port in (51161,48229);
select * from pre_request_logs_20180524 where port in (51161,20462);

執行結果分別如下

可以看到第二條sql是用到了索引,二條sql的區別在于port值不一樣,一個包含48229,一個包含20462

其實MySQL優化器會自動判斷in是否走二級索引,也就是port字段的索引

總結

以上就是這篇文章的全部內容了,希望本文的內容對大家的學習或者工作具有一定的參考學習價值,謝謝大家對腳本之家的支持。

您可能感興趣的文章:
  • mysql查詢條件not in 和 in的區別及原因說明
  • MySQL全面瓦解之查詢的過濾條件詳解
  • mysql條件查詢and or使用方法及優先級實例分析
  • 詳解Mysql查詢條件中字符串尾部有空格也能匹配上的問題
  • MySQL查詢條件常見用法詳解
  • mysql 帶多個條件的查詢方式

標簽:臨汾 武威 白銀 湖北 云浮 烏海 聊城 湖南

巨人網絡通訊聲明:本文標題《MySQL查詢條件中in會用到索引嗎》,本文關鍵詞  MySQL,查詢,條件,中,會,用到,;如發現本文內容存在版權問題,煩請提供相關信息告之我們,我們將及時溝通與處理。本站內容系統采集于網絡,涉及言論、版權與本站無關。
  • 相關文章
  • 下面列出與本文章《MySQL查詢條件中in會用到索引嗎》相關的同類信息!
  • 本頁收集關于MySQL查詢條件中in會用到索引嗎的相關信息資訊供網民參考!
  • 推薦文章
    主站蜘蛛池模板: 栖霞市| 阿荣旗| 大足县| 延吉市| 进贤县| 衡东县| 左云县| 三门峡市| 朝阳市| 建阳市| 辽阳市| 大安市| 甘南县| 长泰县| 承德县| 姜堰市| 高青县| SHOW| 邢台县| 锦州市| 西宁市| 银川市| 恩平市| 中西区| 南充市| 通州区| 五家渠市| 汝州市| 神池县| 绥化市| 黄冈市| 古蔺县| 汾西县| 纳雍县| 盈江县| 故城县| 广河县| 敦煌市| 蕲春县| 海门市| 贵德县|