我有一些帶有布爾列的表,積極列,以指示用戶是否處於活動狀態,然後查詢所有無效的用戶我用布爾型記錄的查詢效率
select * from users where active = 0
我的大多數用戶是活躍的。我理解,如果沒有幫助,查詢需要檢查每條記錄,這在我的情況下效率低,速度相當慢。我有其他的表布爾列,說處理列,用來記錄是否訂單已被處理過,並查詢所有未處理訂單,
select * from orders where processed = 0
我正在考慮把幫助表來記錄這些不活動的用戶和未處理訂單像,
CREATE TABLE IF NOT EXISTS failedRecord (tablename text, row integer) ; //row will be rowid
我真的不喜歡這個自制的解決方案。我更喜歡使用解決方案數據庫提供的,但我不確定在布爾列上使用索引是否有用。 B/C我認爲索引是通過創建一個單獨的索引表來實現的,該索引表將從列創建的鍵映射到索引表中的行索引。對於布爾列作爲值只能是0或1我認爲映射將不會有效。
我使用sqlite,但我認爲其他數據庫也會有問題。
更新了我的問題。
我的大多數用戶都處於活動狀態,大部分訂單都被處理,即在我的情況下,這裏只有少數幾行是0,所以在第二個思考索引之後可能是有效的。是這樣嗎?
如果你需要如此深入地訪問布爾值,那麼在啓動時如何加載所有布爾值,例如排序的ArrayList,所以你有一個內存緩存,並且只在需要的時候更新數據庫。 – cshu
但我想問任何有效的方法來「加載所有這些」謝謝 – Qiulang