Anytime you design at able with fields like this:
id, somefield, item1, item2, item3, item4, item5, etc
there is an IMMEDIATE problem. What happens if you need to add an item 6, 7, and 8? How could you efficiently determine how many items each user has? In this case, the best bet is to do:
main table
MainID, ThisField, ThatField
Items table
ItemID, Item
main_items table
MainID, ItemID
Notice in the main_items table, you have two foreign keys: MainID from the main table, and ItemID from the items table. This is a much more efficient design.
do a search on google for "database normalization" and read up on a few articles. Give your table structure another try, and post what you've got here.
BTW, 1 large table or multiple tables always depends. A general rule of thumb is that each table should only have on subject. So if you have multiple subjects in one table, you should generally split it up into multiple tables.
and millions of records in MySQL is no big deal. It was designed to handle millions upon millions of records. What's important is to have a normalized, properly indexed table and efficient queries!
Hope this helps.