Storing objects as blobs in a database makes it (nearly) impossible to do useful searches in them. Since the power of SQL queries is the main selling point of relation database systems, that's really a pity, and you might want to consider other storage systems ("nosql")
If all your objects have similar structure, storing them in a proper schema would improve searchability
YAML doesn't capture all features of Perl 5 data structures (for example weak references).
Storable captures more features, but you'll generally have problems changing to a different version of Storable (or Perl, for that matter).
If you plan to support multiple serialization formats, store the format in addition to the actual data.
I'm writing a module that calculated estimated time of accomplishment. After it is ready I'm planning to release it as Time::ETA. It is not complete, but you can look at the current version at github.</>
With this module I'm solving a hi level task. I need to create web interface for long lasting tasks. I'm plannig to store serialized version of Time::ETA in database to make it simple to output current status. I think it is good solution — I hide some logic in CPAN module.
You are right that it will not be possible to search through this data, but I here I don't need it.
You are right that YAML can't serialize a lot of thing. But some things can't be serialized in any way (for example open filehandle). In the module I'm going to serialize several scalars, so YAML will do it's job fine.
I'm not doing to support multiple serialization formats I just want to have backward compatibility.