2016-11-09 70 views
0

性能方面,哪一個更好(單個表):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")); 

回答

1

對於你的榜樣,您可以修改通過以下方式,這將是更有效的查詢,我沒有測試查詢。

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