Normalization and Breaking down tables for InnoDB I'm designing a web application, something small but deals with lots of read and inserts.
Let's say 60% read and 40% writes. My storage engine is InnoDB on MySQL. I have a table
called User which has a bunch of stuff in it. I broke it down into smaller tables such as
address table and bio table. Here is an example :

Original table

User table
----------
user_id   PK
user_email
user_pass
user_dob
user_gender
user_country
user_state
user_city


After breaking it down

User table
----------
user_id   PK
user_email
user_pass

Bio Table
----------
user_dob
user_gender

Address Table
-------------
user_country
user_state
user_city


So do you guys think, having smaller table but several of them is better for a high
traffic database or should I keep them all in one table ?
This is how I see it, it's better to have it separate, that's relational database 

If N User can have 1 address, the design should be:



if N user can have M address (user with more address, and an address for multiples user), should be:


For both design, the table USER, Column ID is the Primary key of that table, and User_id is just a FK.
In the second design, Table Address, column ID, it's another PK, that make a relation N:M with user, and create "user_has_table" with 2 foreign keys (user PK and address PK).