MySQL索引使用:欄位為varchar類型時,條件要使用''包起來

來源:互聯網
上載者:User

標籤:insert   條件   bsp   using   create   date   incr   obj   mysql索引   


結論:

當MySQL中欄位為int類型時,搜尋條件where num=‘111‘ 與where num=111都可以使用該欄位的索引。
當MySQL中欄位為varchar類型時,搜尋條件where num=‘111‘ 可以使用索引,where num=111 不可以使用索引

驗證過程:

    建表語句:

CREATE TABLE `gyl` (  `id` int(11) NOT NULL AUTO_INCREMENT,  `str` varchar(255) NOT NULL,  `num` int(11) NOT NULL DEFAULT ‘0‘,  `obj` varchar(255) DEFAULT NULL,  PRIMARY KEY (`id`),  KEY `str_x` (`str`),  KEY `num_x` (`num`)) ENGINE=InnoDB  DEFAULT CHARSET=utf8;

  向表中使用自複製語句插入資料

            insert into gyl (`str`,`num`)values(123123,‘12313‘);

            insert into gyl (`str`,`num`) select `str`,`num` from gyl;

更改資料 update gyl set num=id,str=id

結果:

mysql> explain select * from gyl where str=123123 limit 1;+----+-------------+-------+------+---------------+------+---------+------+--------+-------------+| id | select_type | table | type | possible_keys | key  | key_len | ref  | rows   | Extra       |+----+-------------+-------+------+---------------+------+---------+------+--------+-------------+|  1 | SIMPLE      | gyl   | ALL  | str_x         | NULL | NULL    | NULL | 262756 | Using where |+----+-------------+-------+------+---------------+------+---------+------+--------+-------------+1 row in setmysql> explain select * from gyl where str=‘123123‘ limit 1;+----+-------------+-------+------+---------------+-------+---------+-------+--------+-------------+| id | select_type | table | type | possible_keys | key   | key_len | ref   | rows   | Extra       |+----+-------------+-------+------+---------------+-------+---------+-------+--------+-------------+|  1 | SIMPLE      | gyl   | ref  | str_x         | str_x | 257     | const | 131378 | Using where |+----+-------------+-------+------+---------------+-------+---------+-------+--------+-------------+1 row in setmysql> explain select * from gyl where num=‘12313‘ limit 1;;+----+-------------+-------+------+---------------+-------+---------+-------+--------+-------+| id | select_type | table | type | possible_keys | key   | key_len | ref   | rows   | Extra |+----+-------------+-------+------+---------------+-------+---------+-------+--------+-------+|  1 | SIMPLE      | gyl   | ref  | num_x         | num_x | 4       | const | 131378 |       |+----+-------------+-------+------+---------------+-------+---------+-------+--------+-------+1 row in set1065 - Query was emptymysql> explain select * from gyl where num=12313 limit 1;+----+-------------+-------+------+---------------+-------+---------+-------+--------+-------+| id | select_type | table | type | possible_keys | key   | key_len | ref   | rows   | Extra |+----+-------------+-------+------+---------------+-------+---------+-------+--------+-------+|  1 | SIMPLE      | gyl   | ref  | num_x         | num_x | 4       | const | 131378 |       |+----+-------------+-------+------+---------------+-------+---------+-------+--------+-------+1 row in set

  

MySQL索引使用:欄位為varchar類型時,條件要使用''包起來

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.