建议使用第二种方式:
1.数据量小的情况下,第一种和第二种方式的无明显差异,没必要考虑效率问题;
2.数据量大时,由于数据库IO、网络、内存等各方面因素的影响,第一种方案会给服务器带来非常大的压力且速度也比第二种方案慢,且数据库也可以做一些针对性的索引,同时建议分页获取。
不知道的问题加点测试数据跑跑就知道了
明显sql语句的效率高些,好控制,数据量大可以建索引等
如果第一种查询的数据量在千条以下的时候,我觉得第一种快,反之第二种快
当然,这个千是我猜测的,你可以试试到底数据量达到多少的时候第二种更快、
反正数据少的时候第一种快!
这个问题是相对的,你db如果压力大,查一次和查两次差别就很恐怖了。另一方面,如果你list数据多(相当多),你在内存区筛(包括取数据,创建对象,将数据转成对象)这些可能耗时也不低(或者给gc添加负担)。
但一般情况下,数量一般的(数据不多,db压力不大)情况下,肯定前一种快,后一种再快也是毫秒级的。