Dado que esto es seguridad .stackexchange.com, me centraré en la pregunta de seguridad. (Estoy de acuerdo con otros pósters / comentaristas: este generalmente no es un buen diseño para el mantenimiento a largo plazo. Es probable que no sea excelente para el rendimiento, pero es imposible saberlo sin saber exactamente cómo lo consultan los usuarios, incluido usted y el administrador. )
Desde un punto de vista de seguridad, separar los datos del usuario en diferentes tablas en MySQL solo tendrá beneficios si también configura cuentas de usuario individuales para cada usuario en MySQL, y luego configura sus permisos de manera explícita para que solo puedan acceder a esas tablas. En ese momento, los permisos se convierten en un gran lío para realizar un seguimiento, validar y corregir, pero mitigaría el riesgo de un ataque de inyección SQL .
Sería conceptualmente más fácil darle a cada usuario su propio esquema (o "base de datos" en el lenguaje de MySQL) y otorgarle privilegios a todo su esquema. Esto hace que los privilegios sean mucho más fáciles de auditar y aún mitiga el riesgo de la inyección de SQL.
Este último concepto no es del todo loco: muchos servidores están configurados de esta manera para ejecutar varias aplicaciones respaldadas por bases de datos en el mismo servidor sin permitirles acceder a los datos de los demás. Si tiene sentido en su caso depende, en gran medida, de cuántos usuarios tenga.
No estoy promocionando tu diseño; simplemente señalando los pros / contras.