I have many pages of content (several hundred) that will have lists of items on each page.
I want to be able to compare items on lists from different pages and show matching items or similar items.
I am concerned about MySQL performance as more and more information is added to the database.
Would it be best to enter each list item individually in a MySQL table as its own row (many rows per page), or should I enter entire lists as a serialized array (1 row per page)? What is the best way to store these lists?
If you need to access individual list items for comparison, then storing each list item individually in a table row and using mysql to process them will be more efficient compared to using php to do the same after unserializing the lists.
Update you need, but chances are you don't need to update the table keys.
Delete, usually you don't need, since you want to keep the data for reports and so on (so usually you just change a "deleted" flag)
For "real scalable way", there is always a way, but chances are your system will not reach over 10k records, so you should be fine.