问题一,查询比指定值小的数中最大的一个:1.SELECT id FROM writings w WHERE w.id<90 LIMIT 1;
2.SELECT MAX(id) FROM writings w WHERE id<90;
假充列id是主键,以上两句哪句会更快?问题二,查询最后插入的内容:1.SELECT content FROM writings ORDER BY id DESC LIMIT 1;
2.SELECT content FROM writings WHERE id=(SELECT MAX(id) FROM writings);假设列id是主键,以上两句哪句效率更好?由于以上两句都是返回一条结果,所以所用的时间都是0.00秒,很难比较...请有经验的高人指导一下。先谢了。

解决方案 »

  1.   

    问题一,查询比指定值小的数中最大的一个:1.SELECT id FROM writings w WHERE w.id <90 LIMIT 1; 这个快,但这个的结果和MAX应该并不相等mysql> SELECT id FROM t1 w WHERE w.id <90 LIMIT 1;
    +----+
    | id |
    +----+
    |  1 |
    +----+
    1 row in set (0.00 sec)mysql> SELECT MAX(id) FROM t1 w WHERE id <90;
    +---------+
    | MAX(id) |
    +---------+
    |      89 |
    +---------+
    1 row in set (0.00 sec)mysql>
      

  2.   

    问题二,查询最后插入的内容:1.SELECT content FROM writings ORDER BY id DESC LIMIT 1; 效率更好
    当您的问题得到解答后请及时结贴.
    http://topic.csdn.net/u/20090501/15/7548d251-aec2-4975-a9bf-ca09a5551ba5.html
      

  3.   

    抱歉,第一个问题写的时候忘了加个ORDER BY了,不过没关系,谢谢您的回答。