I'm just pondering this. I don't have a specific project or use in mind. Various parts of SQLite look like they're part of a move towards automatic indexing. I'm wondering how far we are away from this. The average programmer would not bother using <code>CREATE INDEX …</code> at all, it might be left to programmers with unusually good understanding of SQL. I'm thinking of SQLite not only creating its own indexes, but also deleting indexes which go unused, or should be subsumed by a longer index. Presumably the programmer would somewhere set a number which changes the balance between filespace used and time saved. And another number which says whether actual index creation can be done by everyday API calls, or whether it should be left for runs of a special <code>PRAGMA</code>. Is this a solved problem ? Or perhaps a problem that someone proved cannot be usefully solved ?