Android SQLite性能:单个查询中的多个选择与多个查询中的单个选择?

Android SQLite性能:单个查询中的多个选择与多个查询中的单个选择?

问题描述:

性能方面,哪一个更好(单个表):Android SQLite性能:单个查询中的多个选择与多个查询中的单个选择?

  1. 在单个查询多选或
  2. 单选择多个查询?

例子:

/*table schema*/ 
create table ACTIVITY_TABLE (
ID integer primary key autoincrement, 
INTERVAL_ID integer not null, 
ACTIVITY_TYPE text , 
WIFI_LIST text, 
COUNT integer not null); 



/*Multipe selects in single query*/ 
select * from 
    (select sum(COUNT)/60 as Physical from ACTIVITY_TABLE where INTERVAL_ID >=1 and INTERVAL_ID <=3 and (ACTIVITY_TYPE="Still" or ACTIVITY_TYPE = "Walking" or ACTIVITY_TYPE = "Running" )), 
    (select sum(COUNT)/60 as vehicular from ACTIVITY_TABLE where INTERVAL_ID >=1 and INTERVAL_ID <=3 and (ACTIVITY_TYPE="InVehicle")); 

对于你的榜样,您可以修改通过以下方式,这将是更有效的查询,我没有测试查询。

select 
sum(case when activitytype='walking' or activitytype='still' or activitytype='running' then COUNT else 0 end)/60 as physical, 

sum(case when activitytype='InVehicle' then COUNT else 0 end)/60 as vehicular 

from 

activity_table 

where interval_id>=1 and interval_id<=3 
+0

感谢@Mohanraja,但您的查询不给我预期的结果 – ctu

+0

@ctu我想我错过了COUNT&(/ 60)的一部分,我会编辑的那部分,试试现在 – Mohanraja

+0

现在查询给出预期结果。有一个脚本或代码来检查两个查询的性能会很好。我会做一些谷歌搜索,也许我可以找到一些SQLite查询性能测试器,因为现在两个查询(你和我的)在1ms返回结果,因此我不能真正知道哪一个更好。感谢您的输入,虽然:) – ctu