Ah yes very true, it's easy to forget ones biases - I make single threaded web services with mostly-read access. This is a great use case for sqlite (provided you solve the data distribution problem).
Wout. On Wed, Jan 30, 2019, 2:06 AM Keith Medcalf <kmedc...@dessus.com wrote: > On Tuesday, 29 January, 2019 16:28, Wout Mertens wrote: > > >To: SQLite mailing list > >Subject: Re: [sqlite] SQLite slow when lots of tables > > > > I always have to explain to people that there's no magic sauce that > > "real databases" add versus SQLite. > > > SQLite uses the same techniques all databases use, and thanks to the > > absence of a network later, you avoid a lot of latency, so it can > > actually be faster. > > > (I do believe that SQLite optimizes for smaller disk footprint, so > > that may be a tradeoff where other databases might gain speed) > > Well, there is a bit more to it than that. The SQL interface and the > capabilities may be similar but paying $$$$$ for a client/server database > does get you something that you do not get with SQLite3: > > - Someone else wrote the networking layer, so if you want one, you do not > have to do it yourself > - C/S databases are designed to handle REAMS (ie, thousands) of remote > clients doing simultaneous access, so the concurrency is much greater > - C/S databases are parallelized and multithreaded, meaning that the > single server process can use all the cores on your server simultaneously > - C/S databases may be parallelized so that a single query uses all > available CPU cores simultaneously > - C/S databases may be NUMA and/or SYSPLEX enabled so that a single > database can be scattered across multiple disparate machines yet queried as > if there was only one database on one machine > - C/S databases have more complicated data fetching methods (ie, they can > use such things as hash tables, intersection sorts, and all sorts of other > methods to fetch your data rather than just the nested loop retrieval > supported by SQLite) > - Some C/S databases may have extremely complex planners designed to take > maximum advantage of all the above things simultaneously (at a cost, of > course) > > Of course, other than the big bucks you will spend on the C/S database, > you will also have to spend big bucks to give it a big computer to run on. > That means lots of fast I/O and gobs of RAM and CPU. Of course, in the > grand scheme of things a 48 or 96 core x64 server with a terrabyte of RAM > and a couple hundred (or thousand) terrabytes of SSD is not really that > expensive. > > So really, it depends on your needs and what you are willing to pay, In > many cases for a single user or even a small number of concurrent users on > a single computer will likely achieve better performance (and cost > efficiency) by using SQLite3. > > On the other hand if the application is an line-of-business database for a > Fortune 5 multinational corporation, you will probably choose the C/S > database (particularly if you are running some <redacted> software like SAP > ...). > > > > > _______________________________________________ > sqlite-users mailing list > sqlite-users@mailinglists.sqlite.org > http://mailinglists.sqlite.org/cgi-bin/mailman/listinfo/sqlite-users > _______________________________________________ sqlite-users mailing list sqlite-users@mailinglists.sqlite.org http://mailinglists.sqlite.org/cgi-bin/mailman/listinfo/sqlite-users