collect: small optimization on garbage collect
This changes a query like: SELECT date FROM user WHERE reported = 1 AND date != '2020-04-13' AND date != '2020-04-12' AND date != '2020-04-11' AND date != '2020-04-10' AND date != '2020-04-09' AND date != '2020-04-08' AND date != '2020-04-07' AND date != '2020-04-06' AND date != '2020-04-05' AND date != '2020-04-04' AND date != '2020-04-03' AND date != '2020-04-02' AND date != '2020-04-01' AND date != '2020-03-31' AND date != '2020-03-30' LIMIT 1 EXPLAIN QUERY PLAN ... 0|0|0|SCAN TABLE user USING COVERING INDEX user_date_reported_index which took ~3 seconds on a 1.5Go collector.db into: SELECT date FROM user WHERE reported = 1 AND (date < '2020-03-30' OR date > '2020-04-13') LIMIT 1 EXPLAIN QUERY PLAN ... 0|0|0|SEARCH TABLE user USING COVERING INDEX user_date_reported_index (date<?) 0|0|0|SEARCH TABLE user USING COVERING INDEX user_date_reported_index (date>?) which is instant.
Showing
Please register or sign in to comment