▲ | sillystu04 a day ago | |||||||||||||||||||
There are performance benefits to using DB functions in situations where you'd otherwise have to pull lots of data out of the DB. For example, if you wanted to find which of your sessions where created with iPV6 addresses you could select them all out and perform the logic in your application code, potentially at the cost of pulling millions of records out of your DB. But doing it in a DB function allows you to skip this as your app code never needs to do the calculations. This kind of optimisation is generally more important when the DB is running on a separate machine to the application code because of the overhead of big network requests in getting large amounts of data out, but even on a local SQLite DB there is likely some non zero benefit to minimising the amount of data retrieved. I suppose DB functions could of course be implemented in SQL or similar, but that can be quite unfriendly for complex logic. So in a sense there is an advantage ergonomic as well. | ||||||||||||||||||||
▲ | cal85 a day ago | parent [-] | |||||||||||||||||||
> even on a local SQLite DB there is likely some non zero benefit to minimising the amount of data retrieved. Why though? I get why it can be a big perf win to push that kind of logic into a remote DB - fewer and smaller payloads being sent over the network. But what makes you say there is likely a non-zero benefit even with local SQLite? (I don’t really have a clear mental model of how embedded SQLite works, so you may well be right, I just want to understand why.) | ||||||||||||||||||||
|