• yeah, this was my experience working with large scale systems at dropbox – whenever we permitted direct access to MySQL, it was effectively forcing a very specific index traversal. and, despite our best efforts, the query planner would still decide to do a full table scan or spill to disk at the worst possible times.

    this was a big input to our design for convex (disclosure: cofounder), where the query API is pretty much just accessing index ranges (https://docs.convex.dev/database/indexes/). performance is extremely predictable, and with the right ergonomics, it can feel pretty good!


    score 1 · canonical

      • we only expose O(log n) primitives for database indexes (point lookups and index scans), so performance is pretty reasonable even if the dataset changes in scale or distribution.

        we’re currently working on profiling tools for developers who want to optimize further, but we’ve found that most developers don’t have to worry about it.


        score 1 · canonical