MySQL supports a non-structured data type that can contain something like 2Gb of data. Yes: in a cell in a table. We were going to use this to store email. Unfortunately, there's no way to use it because the connection protocol has a 16Mb packet limit. That is, if you raise the client library defaults up from 1Mb!
We use files for storing message contents and put the rest into the database.
Wade.