SQLite improving performance with pre-sort

(andersmurphy.com)

64 points | by tosh 5 days ago ago

8 comments

  • gandreani 2 days ago ago

    It's not clear in the code how you're batching the writes. Could the performance improvement be mostly explained by batches?

    • JSR_FDED 2 days ago ago

      Looks like he’s doing 1M INSERTs per transaction.

      In his 2nd example he’s doing the same thing, except he first sorts the data for each of those 1M INSERTs, leading to a 2-3x speedup.

    • undefined 2 days ago ago
      [deleted]
  • rented_mule 2 days ago ago

    This is not unique to SQLite... it should help with any database that uses B+Trees. Batch deletes are also typically faster when the IDs to be deleted are sorted in these same systems.

  • Loranubi 2 days ago ago

    Depending on the size of the blob you might not want to use `WITHOUT ROWID`. I had a similar table with uuid keys and blobs of 40kb size on average and `WITHOUT ROWID` really tanked performance.

  • linolevan 2 days ago ago

    Neat optimization, I've never seen that before. Thanks for sharing.

  • Abenezer0923 2 days ago ago

    [flagged]

  • yahavthehackern a day ago ago

    [flagged]