What would be better DB design for a social network website.
A single table with more columns and less rows or multiple table with fewer columns but more rows.

For example:
User can post an update on their wall or in a group.

Two DB designs that I could think of are: 

1)
**UserPosts**: id, userId, post, datetime
**UserGroupPost**: id, groupId, userId, post, datetime

**Potentail problem :** Might require joins, which can (in future) be a slow query. 

2)
**Posts**: id, userId, groupId, post, datetime 
(where groupid would be null if user posts on their wall)

**Potential Problem :** Looping over large dataset could take a (long)time.

Where can I get better performance when data increases?
Is there any other(better) way?