I've changed my approach. I split my data to their own table by **list_id** field. And the result I don't use list_id in the SELECT query. Of course I've created `index(item_id, modified)` ## Explain ``` sqlite> explain select * from item where item_id=? and modified=?; 0|Trace|0|0|0||00| 1|Variable|1|1|0||00| 2|Variable|2|2|0||00| 3|Goto|0|45|0||00| 4|OpenRead|0|2|0|25|00| 5|OpenRead|1|11858854|0|keyinfo(2,BINARY,BINARY)|00| 6|SCopy|1|3|0||00| 7|IsNull|3|42|0||00| 8|SCopy|2|4|0||00| 9|IsNull|4|42|0||00| 10|Affinity|3|2|0|dc|00| 11|SeekGe|1|42|3|2|00| 12|IdxGE|1|42|3|2|01| 13|IdxRowid|1|5|0||00| 14|Seek|0|5|0||00| 15|Column|0|0|6||00| 16|Column|1|0|7||00| 17|Column|0|2|8||00| 18|Column|0|3|9||00| 19|Column|0|4|10||00| 20|Column|0|5|11||00| 21|Column|0|6|12||00| 22|Column|0|7|13||00| 23|Column|0|8|14||00| 24|Column|0|9|15||00| 25|Column|0|10|16||00| 26|Column|0|11|17||00| 27|Column|0|12|18||00| 28|Column|0|13|19||00| 29|Column|0|14|20||00| 30|Column|0|15|21||00| 31|Column|1|1|22||00| 32|Column|0|17|23||00| 33|Column|0|18|24||00| 34|Column|0|19|25||00| 35|Column|0|20|26||00| 36|Column|0|21|27|0|00| 37|Column|0|22|28||00| 38|Column|0|23|29||00| 39|Column|0|24|30||00| 40|ResultRow|6|25|0||00| 41|Next|1|12|0||00| 42|Close|0|0|0||00| 43|Close|1|0|0||00| 44|Halt|0|0|0||00| 45|Transaction|0|0|0||00| 46|VerifyCookie|0|6|0||00| 47|TableLock|0|2|0|item|00| 48|Goto|0|4|0||00| ```