zoukankan      html  css  js  c++  java
  • MySQL索引使用:字段为varchar类型时,条件要使用''包起来


    结论:

    当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 set
    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   | ref  | str_x         | str_x | 257     | const | 131378 | Using where |
    +----+-------------+-------+------+---------------+-------+---------+-------+--------+-------------+
    1 row in set
    
    mysql> 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
    
    1065 - Query was empty
    mysql> 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
    

      

  • 相关阅读:
    数组的方法 Array.map();Array.every()和Array.some();数组的indexof();检测是否是数组isArray(obj);
    jsonp的三种跨域方式
    Python函数的参数
    Python 函数
    collection 类
    字符串,列表,元组,字典基本函数
    图像处理------图像加噪 分类: 视频图像处理 2015-07-24 09:26 24人阅读 评论(0) 收藏
    图像处理------理解卷积 分类: 视频图像处理 2015-07-24 09:25 24人阅读 评论(0) 收藏
    图像处理------颜色梯度变化 (Color Gradient) 分类: 视频图像处理 2015-07-24 09:23 27人阅读 评论(0) 收藏
    图像处理------噪声之美
  • 原文地址:https://www.cnblogs.com/jixingke/p/8486075.html
Copyright © 2011-2022 走看看