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
    

      

  • 相关阅读:
    New version of VS2005 extensions for SharePoint 3.0
    QuickPart : 用户控件包装器 for SharePoint Server 2007
    随想
    发布 SharePoint Server 2007 Starter Page
    如何在SharePoint Server中整合其他应用系统?
    Office SharePoint Server 2007 中文180天评估版到货!
    RMS 1.0 SP2
    SharePoint Server 2007 Web内容管理中的几个关键概念
    如何为已存在的SharePoint站点启用SSL
    Some update information about Office 2007
  • 原文地址:https://www.cnblogs.com/jixingke/p/8486075.html
Copyright © 2011-2022 走看看