select * from t where id in (1,2,3) order by s desc;
在id和s上有索引。有没有比这句SQL效率更高的?

解决方案 »

  1.   

    如果id有索引的话,这句应该是已经效率高的了。MYSQL会自动进行一些优化。
      

  2.   


    一楼这种说法并无理论依据,数据库系统和文件型数据库在很多方面是不一样的。 猜想->测试->总结
      

  3.   

    我没说清楚。
    这张表的数据目前有1W条,还在以每天500条左右增加。
    in当中的数量是不固定的,通过PHP脚本取其他数据库生成的,大概在2~20个之间。我想知道1楼所说的插入临时表的方法改怎么做呢?
      

  4.   


    直接 in 比较快。 临时表 是小型文件型数据库的做法,在MySQL中只会慢不会快。临时表的创建时间+记录的插入时间+查询时间。 只是查询时间就比直接的IN慢了。
      

  5.   

    假设临时表名称LSB,只有一个字段ID,在ID上建立索引,你在程序中,INSERT INTO LSB VALUES(你的值)
    执行select * from t inner join lsb on t.id=lsb.id