Is it generally better to run functions on the webserver, or in the database?
Example:
INSERT INTO example (hash) VALUE (MD5('hello'))
or
INSERT INTO example (hash) VALUE ('5d41402abc4b2a76b9719d911017c592')
Ok so that’s a really trivial example, but for scalability when a site grows to multiple websites or database servers, where is it best to ‘do the work’?
I try to think of the database as the place to persist stuff only, and put all abstraction code elsewhere. Database expressions are complex enough already without adding functions to them.
Also, the query optimizer will trip over any expressions with functions if you should ever end up wanting to do something like ‘SELECT …. WHERE MD5(xxx) = … ‘
And database functions aren’t very portable in general.