Este artigo é um artigo espelhado de tradução automática, por favor clique aqui para ir para o artigo original.

Vista: 17091|Resposta: 3

[Fonte] Use GUID como chave primária e int como comparação de desempenho de chave primária

[Copiar link]
Publicado em 09/10/2019 16:48:35 | | | |
No design do banco de datos, frequentemente usamos guid ou int como chave principal, e de acordo com o conhecimento que aprendemos, sempre sentimos que int é mais eficiente como chave principal, mas isso é impossível sem testes cuidadosos

Explique o motivo. Aconteceu que, durante a otimização do banco de dados hoje, encontrei esse problema, então fiz um teste.

Ambiente de Teste:

PC de mesa Pentiun(R) 4 CPU 3.06GHz
Win XP profissional
1,5G DE DDR DE RAM
SQL Server 2005 Pessoal  


Processo de Teste:

Primeiro, crie um banco de dados de teste, teste

Os resultados dos testes são os seguintes:



Como mencionado acima, a eficiência de usar int como chave primária é melhorada em comparação com o uso do guid como chave principal, especialmente quando há uma consulta de conexão e registros de exclusão.

Além disso, na consulta de dados com a chave principal no GUID hoje, o timeout da consulta ocorreu repetidamente devido ao aninhamento de vários subresultados de consulta. Portanto, sou a favor de usar int como chave principal, e não concordo com GUID como chave principal.
As opiniões acima representam opiniões pessoais, e todos são bem-vindos para expressar suas opiniões e explicar as vantagens e desvantagens de GHID e INT como a principal chave.

Testes de acompanhamento:


Após serem lembrados pelos irmãos, um índice não agrupado foi adicionado a duas subtabelas hoje:

CRIAR Index_Detail_Guid DE ÍNDICE NÃO AGRUPADO NO Test_Guid_Detail(Guid)
CRIAR Index_Detail_id DE ÍNDICE NÃO AGRUPADO EM Test_Int_Detail(ID)
Depois, fiz uma consulta interna de conexão e descobri que, como @Xu Shaoxia disse, a eficiência realmente não é óbvia o suficiente para indicar mais de 50%, basicamente apenas cerca de 23% de melhora, o que ainda é aceitável.

Portanto, é recomendado

1. Em sistemas que frequentemente precisam migrar dados, recomenda-se o uso do Guid. E adicionar índices não agrupados aos campos de chave estrangeira, ou seja, campos usados para consultas de junção, é de grande benefício para melhorar o desempenho. O campo da condição onde também pode ser adicionado conforme apropriado para índices não agrupados.

2. Ao usar o tipo Guid como chave primária, o tipo de dado deve ser identifier, e lembre-se de cancelar o "índice agregado" da chave primária

3. Para sistemas que não precisam ser migrados, ou sistemas pequenos, ainda é muito conveniente usar a int como chave primária, e ainda há uma certa melhoria na eficiência.





Anterior:A182 Wu Xiaobo "Novo Livro Branco sobre a Classe Média 2019"
Próximo:Uma coleção dos recursos mais recentes do Clube de Leitura Fan Deng
 Senhorio| Publicado em 08/02/2021 11:03:12 |
teste
 Senhorio| Publicado em 08/02/2021 11:03:31 |

Publicado em 20/03/2025 16:13:51 |
A migração da chave primária INT não é um grande problema, desde que a chave primária int seja temporariamente cancelada durante a migração, e então abra o auto-incremento após a migração
Disclaimer:
Todo software, material de programação ou artigos publicados pela Code Farmer Network são apenas para fins de aprendizado e pesquisa; O conteúdo acima não deve ser usado para fins comerciais ou ilegais, caso contrário, os usuários terão todas as consequências. As informações deste site vêm da Internet, e disputas de direitos autorais não têm nada a ver com este site. Você deve deletar completamente o conteúdo acima do seu computador em até 24 horas após o download. Se você gosta do programa, por favor, apoie um software genuíno, compre o registro e obtenha serviços genuínos melhores. Se houver qualquer infração, por favor, entre em contato conosco por e-mail.

Mail To:help@itsvse.com