Generally, if to think about a good architecture, it is not one table should be.
\r
Table1: ID, username, password
Table2: data about the user
The field value of the invite I did not understand, but if you mean "referral program" of some sort is also a separate table with data "user ID", "referrer"
and instead user_reg_flag to make a table of user roles in the system (you have, most likely, an administrator will be?) — first, the "login" and "admin" and link through linking the user table with roles that everyone could have some. Then upon confirmation of registration, for example, add user to role"login" if you want to ban (prevent login) — remove it.
\r
If interested, you can write the structure of these tables.
\r
PS: as for the subject — don't see the point in the optimization field without optimization of the database structure.