Normalmente establezco todos mis varchars a 255 para estar seguro. ¿Hace alguna diferencia en términos del espacio en disco o cualquier otra cosa? ¿Hay algún inconveniente en tener varcharrs/ints/otros campos más grandes de los que necesitaría en su mayoría?¿Hay alguna desventaja de dar tamaño/longitud extra a las columnas de su base de datos?
Respuesta
se necesita más tiempo y más transferencias de disco para cargar elementos de datos más grandes en la memoria. La definición de tamaños máximos grandes para columnas aumenta el tamaño de las filas de la tabla. Para muchos servidores DBMS, las filas de la tabla son los elementos transferidos. Definir columnas demasiado gordas hace que las cosas vayan más despacio.
Este efecto es mínimo para VARCHAR
artículos. Pero VARCHAR
es bastante más lento que los tipos de datos como los enteros. Los enteros de ocho bytes tardan cuatro veces más en transferirse que los enteros de dos bytes. Por lo tanto, si se está diseñando una base de datos para un rendimiento máximo, limitar las columnas de datos al rango realmente requerido acelerará las cosas. La extensión de este efecto depende de si el canal del disco es un cuello de botella o no.
Otra posible cuello de botella es el canal que une el servidor con el cliente, a menudo un canal de la red. El cuello de botella en este canal se puede reducir con consultas que no solicitan datos que nunca se usarán, pero aquí hay una solución entre pedir datos solo cuando los necesita y hacer demasiados viajes redondos.
También hay un compromiso entre el diseño para un rendimiento óptimo y sobre el diseño de la anticipación de la evolución de las necesidades.
Esto puede dar una idea:
Con espacio en disco tan barato como lo es, que tienden a no ser tan preocupado por esto como lo era hace años. Sin embargo, pequeñas cosas se suman en VLDB.
El espacio en disco es barato pero la memoria RAM no. De acuerdo con http://stackoverflow.com/questions/262238/are-there-disadvantages-to-using-a-generic-varchar255-for-all-text-based-fields esto tiene un gran impacto en las tablas temporales que ganaron ' ya no cabe en la memoria -> se crean archivos temporales y se reduce el rendimiento de la consulta. – Capsule
Buen punto, de nuevo.Esto no importará mucho para una base de datos que tenga unos cientos de MB. Pero mi punto sobre la escalabilidad es general para todos los recursos, cuando hablamos de millones de registros y TB, entonces cada pequeño 'bit' ayuda. (perdón por el juego de palabras) –
No, eso no afecta el espacio en disco. Si eligió cualquier columna para varchar, tendrá una longitud variable de 0 a 65535. si la declara 255 o 65535, ambas son iguales.
si necesita sólo 255 caracteres que debe declararlos como char de modo que si no hay una columna de longitud variable en la tabla de las consultas será rápido.
De acuerdo con esto, hace una diferencia en las consultas: http: //stackoverflow.com/questions/1151667/what-are-the-optimum-varchar-sizes-for-mysql – Mikecito
Si permite 255 caracteres, alguien puede usar 255 caracteres. Y así, cada informe y pantalla de ingreso de datos en línea debe poder manejar 255 caracteres. Sucio.
Tengo un ejemplo del mundo real: en nuestro sistema que alguien decidió que los nombres de departamento podrían ser de 200 caracteres de largo. Cuando alguien aportaba un valor bastante largo, arruinaba el diseño de varias formas HTML, alejando otros campos del lado derecho y haciéndolos inaccesibles. Por lo tanto se requiere algún trabajo de reparación ...
Tiene más problema que intentarlo para dictar cuántos caracteres debería tener el nombre de alguien –
Creo que hay un término medio aquí donde modela el tamaño de la columna a los datos realistas máximos. P.ej. ¿Con qué nombres se encuentra para su tipo de datos que se acercaría y mucho menos superaría los 60 caracteres? "El instituto de lo ridículamente largo llamado thing-a-ma-bobbers" ... vale, tal vez ... pero 200 es mucho más de lo necesario el 99.999% del tiempo. – scunliffe
- 1. ¿Hay alguna desventaja en el uso de las funciones -Bsymbolic-?
- 2. Recomendaciones para las bases de datos de las columnas de base de datos orientada a
- 3. Base de datos Wiki, ¿hay alguna?
- 4. Dar formato a una lista de texto en las columnas
- 5. ¿Hay alguna desventaja al devolver esto en lugar de anular?
- 6. Almacenamiento de documentos como blobs en una base de datos - ¿Alguna desventaja?
- 7. ¿Hay alguna forma de no descifrar el código si cambian las columnas en una base de datos?
- 8. ¿Hay alguna forma de averiguar el tamaño/tamaño de las tablas de la base de datos?
- 9. Ordenar columnas en las tablas de la base de datos
- 10. ¿Hay alguna base de datos de intereses para descargar?
- 11. ¿Hay alguna base de datos que admita buffers de protocolo?
- 12. ¿Hay alguna forma de agregar columnas adicionales a un jstree?
- 13. ¿Por qué no debería dar acceso a personas de afuera a mi base de datos?
- 14. Diagramas de la base de datos de Visio, asociando columnas
- 15. ¿Hay alguna desventaja al usar PRINT en mis procesos almacenados?
- 16. ¿Hay alguna forma de acceder a una base de datos PostgreSQL si olvidó la contraseña?
- 17. ¿Cómo deshacerse de múltiples columnas en una base de datos?
- 18. ¿Cómo puedo convertir todas las columnas en mi base de datos a mayúsculas y minúsculas
- 19. ¿Cómo documenta la estructura de su base de datos?
- 20. ¿Hay alguna manera de dar estilo a los días de datechicker de jquery?
- 21. ¿Hay alguna herramienta para ver las consultas ejecutadas en la base de datos?
- 22. ¿Hay alguna desventaja al poner el código API en un JAR junto con las clases?
- 23. Obtenga todas las tablas y todas las columnas de una base de datos odbc
- 24. columnas de base de datos y normalización clave externa
- 25. ¿Hay alguna forma de descubrir qué direcciones IP están conectadas a la base de datos?
- 26. ¿Hay alguna forma de ignorar las columnas que no existen en INSERTAR?
- 27. ¿Hay una base de datos antispam gratuita?
- 28. ¿Existe alguna forma práctica de migrar de las columnas de identidad a las claves de la unidad?
- 29. ¿Hay alguna manera fácil de dar estilo a los últimos dos caracteres de una cadena?
- 30. ¿Alguna desventaja sobre el puerto OpenCV de Android?
posible duplicado de [importa límite formatos ¿VARCHAR?] (Http://stackoverflow.com/questions/4324872/does-varchar-size-limit-matter) –
duplicados de http://stackoverflow.com/questions/ 262238/are-there-disadvantages-to-using-a-generic-varchar255-for-all-text-based-fields – Capsule
posible duplicado de [Importancia de la longitud varchar en la tabla MySQL] (http://stackoverflow.com/questions/1962310/importance-of-varchar-length-in-mysql-table) – wallyk