sql >> Base de Datos >  >> RDS >> Sqlserver

¿Por qué no usar varchar (máximo)?

Mi respuesta a esto no se trata del uso de Max, sino del motivo de VARCHAR(max) vs TEXT.

En mi libro; En primer lugar, a menos que pueda estar absolutamente seguro de que nunca codificará nada más que texto en inglés y que las personas no se referirán a nombres de ubicaciones extranjeras, entonces debe usar NVARCHAR o NTEXT.

En segundo lugar, es lo que los campos te permiten hacer.

TEXT es difícil de actualizar en comparación con VARCHAR, pero obtiene la ventaja de la indexación de texto completo y muchas cosas inteligentes.

Por otro lado, VARCHAR(MAX) tiene cierta ambigüedad, si el tamaño de la celda es <8000 caracteres, se tratará como datos de Fila. Si es mayor, se tratará como un LOB para fines de almacenamiento. Debido a que no puede saber esto sin consultar RBAR, esto puede tener estrategias de optimización para lugares en los que necesita estar seguro acerca de sus datos y cuántas lecturas cuestan.

De lo contrario, si su uso es relativamente mundano y no espera tener problemas con el tamaño de los datos (es decir, está usando .Net y, por lo tanto, no tiene que preocuparse por el tamaño de sus objetos string/char*) entonces usar VARCHAR(max) está bien.