tipo que guiones entre diferencia define datos cadena acepta database-design varchar

database-design - guiones - varchar que acepta



Varchar Fields-¿Es un poder de dos más eficiente? (5)

Depende de la implementación de la base de datos específica, pero no lo esperaría. Por lo general, no realiza ningún cálculo sobre la cantidad de caracteres, por lo que no debería afectar el rendimiento, solo el espacio.

¿Es más eficiente usar un campo varchar clasificado como una potencia de dos frente a otro número? Estoy pensando que no, porque para SQL Server el valor predeterminado es 50.

Sin embargo, he escuchado (pero nunca confirmado) que el tamaño de los campos como potencia de 2 es más eficiente porque equivalen a incluso bytes, y las computadoras procesan en bits y bytes.

Entonces, ¿un campo declarado como varchar(32) o varchar(64) tiene algún beneficio real sobre varchar(50) ?


El único beneficio tangible que verá al usar ciertas longitudes máximas es el espacio de almacenamiento requerido para el VARCHAR . Una longitud máxima de más de 255 requeriría un byte adicional para almacenar la longitud del valor en cada fila (y 2 bytes adicionales para longitudes de 256 ^ 2 o más, y así sucesivamente).


Para SQL en general? No. Para una implementación específica, tal vez.

Lo que es más eficiente no está determinado por una especificación (SQL es solo una especificación), sino cómo se implementa en un determinado DBMS.


Siempre pensé que las personas eligen los poderes de dos para los campos varchar porque somos geeks y eso es lo que hacemos. Al menos eso es lo que siempre he hecho.


No.

En algunos otros usos, hay algunas ventajas para usar estructuras con una potencia de dos tamaños, principalmente porque puede caber un número agradable (potencia de dos) dentro de otra estructura de potencia de dos. Pero esto no se aplica a un tamaño de campo DB.

El único poder-de-dos-tamaños relacionado con VARCHARs es sobre el tipo exacto de varchar (o TEXT / BLOB en algunos dialectos de SQL): si es menos de 256, puede usar un solo byte para indicar la longitud. si es menos de 65536 (64 KB), dos bytes son suficientes, tres bytes funcionan hasta 16777216 (16 MB), cuatro bytes van a 4294967296 (4 GB).

Además, se puede argumentar que VARCHAR(50) es tan caro como VARCHAR(255) , ya que ambos necesitarán n + 1 bytes de almacenamiento.

Por supuesto, eso es antes de pensar en Unicode ...