在一个很大的表里查符合条件的limit 30
table t{
 a
 b
 c
}
select * from t where a<100 limit 30;
select * from t where a<100 and b<100 limit 30;
假设a,b都有索引,这两句的效率是不是差不多
如果第二句效率慢,我是不是要按第一种写法多读出来几个比如60,然后程序里(java)判断b列的值,如果不符合条件删掉
这样来降低数据库的压力另外,索引列是要尽量保证不同值多比较好还是相同值多比较好
因为是按照时间排序,所以我可以存当前的秒数,也可以存整点的秒数,比如12:01的秒数,12:02的秒数

解决方案 »

  1.   

    如果第二句效率慢,我是不是要按第一种写法多读出来几个比如60,然后程序里(java)判断b列的值,如果不符合条件删掉
    这样来降低数据库的压力
    不用另外,索引列是要尽量保证不同值多比较好还是相同值多比较好
    因为是按照时间排序,所以我可以存当前的秒数,也可以存整点的秒数,比如12:01的秒数,12:02的秒数
    不同值多比较好
      

  2.   

    我以为还是读出数据用java来判断好。当然你要数据库服务器和web服务器分开的。
      

  3.   

    不然,降低了数据库的压力,增大了java程序执行的时间。是同样的道理。按筛选条件读出来返回更好。
      

  4.   

    数据库是瓶颈,web服务器和数据库服务器是分开的