GitHub - Jkeyuk/JDbrowser: A terminal SQLite database browser. written in rust.
A terminal SQLite database browser. written in rust. - Jkeyuk/JDbrowser
SQLite import with AutoCommit turned off - ETOOBUSY
Until I came to read Schwern’s little gem, hinting to turn AutoCommit off. That hit the nail so good that one single hit sufficed.
Text::CSV_XS is extremely fast, using that to handle the CSV should take care of that side of the performance problem.
There should be no need for special bulk insert code to make DBD::SQLite performant. An insert statement with bind parameters is very fast. The main trick is to turn off AutoCommit in DBI and do all the inserts in a single transaction.
https://stackoverflow.com/questions/15331791/dbicsv-implementation-based-on-sqlite/15337369#15337369
SQLite the only database you will ever need in most cases
The only time you need to consider a client-server setup is:
- Where you have multiple physical machines accessing the same database server over a network. In this setup you have a shared database between multiple clients.
- If your machine is extremely write busy, like accepting thousand upon thousands of simultaneous write requests every second, then you also need a client-server setup because a client-server database is specifically build to handle that.
- If you're working with very big datasets, like in the terabytes size. A client-server approach is better suited for large datasets because the database will split files up into smaller files whereas SQLite only works with a single file.
I'm All-In on Server-Side SQLite · Fly
Litestream is an open-source project that makes SQLite tenable for full-stack applications through the power of ✨replication✨. If you can set up a SQLite database, you can get Litestream working in less than 10 minutes.