uso una tabla sintaxis modificar especificacion entre eliminar diferencias condicional como columna campo calculada agregar sql mysql

una - sql server select columna calculada



mysql: ¿cuántas columnas son demasiadas? (3)

Estoy configurando una tabla que podría tener más de 70 columnas. Ahora estoy pensando en dividirlo ya que algunos de los datos en las columnas no serán necesarios cada vez que se acceda a la tabla. Por otra parte, si hago esto, me queda la necesidad de usar uniones.

¿En qué punto, si hay alguno, se consideran demasiadas columnas?


Es demasiado cuando viola las reglas de normalización. Es bastante difícil obtener tantas columnas si está normalizando su base de datos. Diseñe su base de datos para modelar el problema, no en torno a ninguna regla o idea artificial sobre la optimización para una plataforma de db específica.

Aplique las siguientes reglas a la tabla ancha y es probable que tenga muchas menos columnas en una sola tabla.

  1. No hay elementos repetitivos o grupos de elementos
  2. Sin dependencias parciales en una clave concatenada
  3. Sin dependencias en atributos no clave

Aquí hay un link para ayudarlo.


Hay algunos beneficios al dividir la tabla en varias con menos columnas, que también se denomina Partición vertical . Aquí hay algunos:

  1. Si tiene tablas con muchas filas, modificar los índices puede llevar mucho tiempo, ya que MySQL necesita reconstruir todos los índices en la tabla. Tener los índices divididos en varias tablas podría hacerlo más rápido.

  2. Dependiendo de sus consultas y tipos de columna, MySQL podría escribir tablas temporales (usadas en consultas de selección más complejas) en el disco. Esto es malo, ya que el disco I / O puede ser un gran cuello de botella. Esto ocurre si tiene datos binarios (texto o blob) en la consulta.

  3. Una tabla más amplia puede llevar a un rendimiento de consulta más lento.

No optimice prematuramente, pero en algunos casos, puede obtener mejoras de tablas más estrechas.


Se considera demasiados una vez que está por encima del límite máximo admitido por la base de datos .

El hecho de que no necesite que cada columna devuelva cada consulta es perfectamente normal; es por eso que la instrucción SELECT le permite nombrar explícitamente las columnas que necesita.

Como regla general, la estructura de su tabla debe reflejar su modelo de dominio; si realmente tiene 70 (100, qué tiene usted) atributos que pertenecen a la misma entidad, no hay razón para separarlos en varias tablas.