2010-04-29 9 views

Respuesta

4

Número y tipo de columnas. Hay un límite en el tamaño de las columnas en una tabla. Ver here. Hay un máximo de 8,060 bytes por fila.

Las tablas muy grandes también pueden afectar el rendimiento y pueden ser difíciles de optimizar e indexar bien.

Esto es aparte de mantener los datos conceptualmente diferentes, aparte uno de otro. Por ejemplo, un país y una moneda tienen una relación de 1 a 1 (ejemplo ilustrativo, sé que este no es siempre el caso). Todavía no los mantendría juntos.

+1

Las tablas que son demasiado anchas también pueden tener un acceso más lento. – HLGEM

+0

@HLGEM - Muy cierto. Agregado a la respuesta :) – Oded

+0

el límite de 8060 bytes por fila era un límite VIEJO del Servidor SQL. esto funciona en SQL Server 2005: 'create table big_row (a varchar (5000), b varchar (5000), c varchar (5000), d varchar (5000), e varchar (5000), f varchar (5000), g varchar (5000), h varchar (max)); insertar en valores de big_row (replicar ('A', 5000), replicar ('B', 5000), replicar ('C', 5000), replicar ('D', 5000), replicar ('E', 5000), replicar ('F', 5000), replicar ('G', 5000), replicar ('H', 10000)) 'Su enlace es para SQL Server, de todos modos pensé que la pregunta era sobre MySql. Sin embargo, su parte acerca de las tablas grandes (supongo que quiere decir anchura, y no filas) es correcta. –

3

Encontrará información acerca de cuándo es útil para crear uno-a-uno relaciones bajo http://onlamp.com/pub/a/onlamp/2001/03/20/aboutSQL.html

Lo más importante es el siguiente:

El indicador clave de una posible necesidad de una relación de uno a uno es una tabla que contiene campos que son que solo se usan para un cierto subconjunto de los registros en esa tabla.

1

He hecho esto para evitar el bloqueo/bloqueo, coloque las columnas pesadas de lectura en una tabla las columnas pesadas de actualización en otra, funcionó como un amuleto. Una gran cantidad de grandes transacciones de actualización de grasa fueron ralentizando un montón de lecturas.

0

Las relaciones de uno a cero son comunes y están vinculadas desde el opcional al obligatorio; el ejemplo dado en http://onlamp.com/pub/a/onlamp/2001/03/20/aboutSQL.html es de este tipo, no uno a uno. Las relaciones tipo/subtipo pueden implementarse de esta manera.

relaciones uno a uno se producen cuando cada uno representa una entidad clara, significativa, que en un contexto diferente puede estar en una relación diferente y donde un pequeño cambio en los requisitos puede cambiar la cardinalidad de la relación. Es arbitrario con qué enlaces, por lo que es mejor elegir uno para que sea opcional y convertir uno a cero o uno.

Cuestiones relacionadas