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

Índice SQL - Diferencia entre char e int

Las columnas de entero/identidad se utilizan a menudo para claves primarias en tablas de base de datos por varias razones. Las columnas de clave principal deben ser únicas, no deben ser actualizables y realmente no deben tener sentido. Esto hace que una columna de identidad sea una opción bastante buena porque el servidor obtendrá el siguiente valor por usted, deben ser únicos y los números enteros son relativamente pequeños y utilizables (en comparación con un GUID).

Algunos arquitectos de bases de datos argumentarán que se deben usar otros tipos de datos para los valores de clave principal y los criterios "sin sentido" y "no actualizable" se pueden argumentar de manera convincente en ambos lados. Independientemente, los campos de enteros/identidad son bastante convenientes y muchos diseñadores de bases de datos encuentran que crean valores clave adecuados para la integridad referencial.

  1. La mejor opción para la clave principal son los tipos de datos enteros, ya que los valores enteros se procesan más rápido que los valores de tipo de datos de caracteres. Un tipo de datos de carácter (como clave principal) debe convertirse a valores equivalentes ASCII antes de procesarse.
  2. Obtener el registro en función de la clave principal será más rápido en el caso de números enteros como claves principales, ya que esto significará que habrá más registros de índice presentes en una sola página. Entonces el tiempo total de búsqueda disminuye. También las uniones serán más rápidas. Pero esto será aplicable en caso de que su consulta use búsqueda de índice agrupado y no escaneo y si solo se usa una tabla. En caso de que el escaneo no tenga una columna adicional, significará más filas en una página de datos.

¡Espero que esto te ayude!