我有一些带有布尔列的表,积极列,以指示用户是否处于活动状态,然后查询所有无效的用户我用布尔型记录的查询效率
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