Android SQLite性能:单个查询中的多个选择与多个查询中的单个选择?
问题描述:
性能方面,哪一个更好(单个表):Android SQLite性能:单个查询中的多个选择与多个查询中的单个选择?
- 在单个查询多选或
- 单选择多个查询?
例子:
/*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
感谢@Mohanraja,但您的查询不给我预期的结果 – ctu
@ctu我想我错过了COUNT&(/ 60)的一部分,我会编辑的那部分,试试现在 – Mohanraja
现在查询给出预期结果。有一个脚本或代码来检查两个查询的性能会很好。我会做一些谷歌搜索,也许我可以找到一些SQLite查询性能测试器,因为现在两个查询(你和我的)在1ms返回结果,因此我不能真正知道哪一个更好。感谢您的输入,虽然:) – ctu