Este artículo es un artículo espejo de traducción automática, por favor haga clic aquí para saltar al artículo original.

Vista: 17091|Respuesta: 3

[Fuente] Usa GUID como clave primaria e int como comparación de rendimiento de claves primarias

[Copiar enlace]
Publicado en 9/10/2019 16:48:35 | | | |
En el diseño de la base de datos, a menudo usamos guid o int como clave principal, y según el conocimiento que hemos adquirido, siempre hemos sentido que int es más eficiente como clave principal, pero es imposible sin pruebas cuidadosas

Explica la razón. Ocurrió que durante la optimización de la base de datos hoy, me encontré con este problema, así que hice una prueba.

Entorno de prueba:

PC de sobremesa Pentiun(R) 4 CPU 3,06GHz
Win XP profesional
1,5G DE RAM DDR
SQL Server 2005 Personal  


Proceso de prueba:

Primero, crear una base de datos de prueba, Prueba

Los resultados de las pruebas son los siguientes:



Como se mencionó antes, la eficiencia de usar int como clave primaria mejora en comparación con usar guid como clave principal, especialmente cuando hay una consulta de conexión y se eliminan registros.

Además, en la consulta de datos con la clave principal en GUID actual, el tiempo de espera de la consulta ocurrió repetidamente debido al anidamiento de varios subresultados de consulta. Por lo tanto, estoy a favor de usar int como clave principal, y no estoy de acuerdo con GUID como clave principal.
Las opiniones anteriores reflejan opiniones personales, y todo el mundo es bienvenido a expresar sus opiniones y explicar las ventajas y desventajas de GHID e inteligencia como clave principal.

Pruebas de seguimiento:


Tras recordárselo los hermanos, hoy se ha añadido un índice no agrupado a dos subtablas:

CREAR Index_Detail_Guid DE ÍNDICE NO AGRUPADO EN Test_Guid_Detail(GUID)
CREAR Index_Detail_id ÍNDICE NO AGRUPADO EN Test_Int_Detail(ID)
Luego realicé una consulta interna de conexión y descubrí que, como dijo @Xu Shaoxia, la eficiencia no es lo suficientemente evidente como para indicar más del 50%, y básicamente solo alrededor del 23% de mejora, lo cual sigue siendo aceptable.

Por lo tanto, se recomienda

1. En sistemas que a menudo necesitan migración de datos, se recomienda usar Guid. Y añadir índices no agrupados a los campos de clave extranjera correspondientes, es decir, campos usados para consultas de unión, es de gran beneficio para mejorar el rendimiento. El campo de la condición donde también puede añadirse según corresponda para índices no agrupados.

2. Al usar el tipo Guid como clave primaria, el tipo de dato debe ser identifier, y asegúrate de recordar cancelar el "índice agregado" de la clave primaria

3. Para sistemas que no necesitan ser migrados, o sistemas pequeños, sigue siendo muy conveniente usar la inteligencia como clave primaria, y aún así hay cierta mejora en la eficiencia.





Anterior:A182 Wu Xiaobo "Nuevo Libro Blanco de la Clase Media 2019"
Próximo:Una colección de los recursos más recientes del Club de Lectura Fan Deng
 Propietario| Publicado en 8/2/2021 11:03:12 |
prueba
 Propietario| Publicado en 8/2/2021 11:03:31 |

Publicado en 20/3/2025 16:13:51 |
La migración de la clave primaria INT no es un gran problema, siempre que la clave primaria INT se cancele temporalmente durante la migración y luego abra el auto-incremento tras la migración
Renuncia:
Todo el software, materiales de programación o artículos publicados por Code Farmer Network son únicamente para fines de aprendizaje e investigación; El contenido anterior no se utilizará con fines comerciales o ilegales; de lo contrario, los usuarios asumirán todas las consecuencias. La información de este sitio proviene de Internet, y las disputas de derechos de autor no tienen nada que ver con este sitio. Debes eliminar completamente el contenido anterior de tu ordenador en un plazo de 24 horas desde la descarga. Si te gusta el programa, por favor apoya el software genuino, compra el registro y obtén mejores servicios genuinos. Si hay alguna infracción, por favor contáctanos por correo electrónico.

Mail To:help@itsvse.com