有10w条数据,数据结构如下:CREATE TABLE IF NOT EXISTS `test` (
  `id` mediumint(8) unsigned NOT NULL AUTO_INCREMENT,
  `name` varchar(50) NOT NULL DEFAULT '',
  PRIMARY KEY (`address_id`)
) ENGINE=MyISAM  DEFAULT CHARSET=gbk AUTO_INCREMENT=100000;1)
SELECT id, name FROM test WHERE id = 9999;
2)
SELECT id, name FROM test WHERE id = '9999';这两句SQL,运行效率哪个更高?
自己测试过,花费的时间都是一样的,但总觉得应该是第一句效率更高些

解决方案 »

  1.   

    `id` mediumint(8)你的ID是这数字,因此,当然是 WHERE id = 9999;的效率会高,因为MYSQL不需要把  '9999' 转换为数字 9999
    你是如何测试的? 测试验证一个结果,需要设计非常科学的测试方法。排除测试过程中所有其它因素的干扰。
      

  2.   

    直接在mysql命令行里输入2行sql语句,看运行的时间
      

  3.   

    只差一点点, MYSQL 会在解析SQL语句时, 自动将字符集'9999'转换为9999.
    所以有差的话, 只差在解析语句上
      

  4.   

    http://topic.csdn.net/u/20111026/15/2d7e082e-02e7-4956-a09b-4ec0e6e1f878.html?79688
    第三条,‘9999’会被转换为9999,对效率影响应该很小。