| ▲ | 0123456789ABCDE 2 hours ago | |||||||
all* of that + sharding -> https://sqlite.org/lang_attach.html ex: main.db + fts.db. reading and writing to main.db is always available; updating the fts index can be done without blocking the main database — it only needs to read, the reads can be chunked, and delayed. fts.db keeps the index + a cursor table — an id or last change ts could also use a shard to handle tables for metrics, or simply move old data out of main.db * some examples:
edit: orms will obliterate your performance — use raw queries instead. just make sure to run static analysis on your code base to catch sqli bugs.my replies are being ratelimited, so let me add this the heavy duty server other databases have is doing that load bearing work that folks tend to complain about sqlite can't do the real dmbs's are doing mostly the same work that sqlite does, you just don't have to think about it once they're set up. behind that chunky server process the database is still dealing with writing your data to a filesystem, handling transaction locks, etc. by default sqlite gives you a stable database file, that when you see the transaction complete, it means the changes have been committed to storage, and cannot be lost if the machine were to crash exactly after that. you can decide to wave some, or all of those guaranties in exchange for performance, and this doesn't even have to be an all or nothing situation. | ||||||||
| ▲ | hparadiz an hour ago | parent [-] | |||||||
Oh fun something I have some metrics on. I just made this benchmark for every php orm a few weeks ago for fun. https://the-php-bench.technex.us/ There's a huge performance difference between memory and file storage within sqlite itself. Not even getting into tuning specifics. | ||||||||
| ||||||||