Firstly, I will never store serialized data, it just does not carry over enough. Perhaps in a JSON encoded field, but not serialized.
Secondly, if you are doing something with the data (search, aggregation, etc.), make them columns in the table. And I mean anything (sorting, etc.).
The only time it is acceptable to store formatted data (serialized, json, etc.) in a column is read-only. Bearing in mind that you are not sorting it, you are not using it in the where clause, you are not aggregating data, etc.
Database servers are very efficient at performing set-based operations. Therefore, if you do any aggregations (summation, etc.), do it in MySQL. This will be significantly more efficient than you could do with PHP ...
source share