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

Vista: 3812|Resposta: 2

[Fonte] [Girar] (MSSQL) Int e GUID do banco de dados SQL Server para comparação de chaves primárias

[Copiar link]
Publicado em 06/06/2023 22:17:40 | | |
Requisitos: Durante uma entrevista recente, me perguntaram qual é a diferença entre int de banco de dados SQL Server e GUID como chave principal.Ambos têm prós e contras, por favor, pese-os de acordo com seus cenários reais de negócio

Texto original 1O login do hiperlink está visível.

Vantagens de usar INT como chave primária:

1. Requer um espaço de armazenamento de dados pequeno, apenas 4 bytes.

2. O desempenho do uso de INT para operações de inserção e atualização é melhor do que o do GUID, então usar int melhorará o desempenho da aplicação.

3. Operações de Indexação e Junção, int tem o melhor desempenho.

4. Fácil de lembrar.

5. Suporte para obter o valor mais recente por meio de uma função, como: Scope_Indentity().

Desvantagens de usar INT como chave primária

1. Se houver uma operação frequente de fusão de tabelas, pode haver duplicação de chaves primárias.

2. Existem restrições quanto ao escopo do uso dos dados de INT. Se houver uma grande quantidade de dados, pode exceder a faixa de valores INT.

3. É difícil processar tabelas de dados armazenadas distribuídas.

Vantagens de usar o GUID como chave principal:

1. É único.

2. Há poucas oportunidades para duplicação.

3. É adequado para operações de inserção e atualização em grandes volumes de dados.

4. A fusão de dados entre servidores é muito conveniente.

Desvantagens de usar o GUID como chave principal:

1. O espaço de armazenamento é grande (16 bytes), então ocupará mais tamanho de disco.

2. É difícil lembrar. O desempenho da operação de junção é inferior ao da int.

3. Não há uma função embutida para obter a chave primária GUID gerada mais recente.

4. O GUID como chave primária será adicionado a outros índices na tabela, reduzindo o desempenho.

Resumo:

O texto acima lista as vantagens e desvantagens dos tipos de dados GUID e INT como chaves primárias. Acho que para volumes grandes de dados, é recomendado usar o GUID como chave primária. considerando queUsar inteligência vai te dar o melhor desempenho possível


Comentário: UsoO desempenho do GUID ordenado melhora muito

Texto original doisO login do hiperlink está visível.

Identidade é um tipo inteiro, decimal sem definição decimal, bigint é aceitável

O guid é binário fixo(16), que tem 16 bytes

A identidade é incrementada (ou subtraída), e o GUD é aleatório, então, à medida que os dados são inseridos,O primeiro não produzirá fragmentos, enquanto o segundo produzirá, e como o segundo está fora de ordem, a ordem deve ser ajustada ao ser inserido, então o primeiro geralmente é melhor que o segundo em termos de desempenho.

Uma grande quantidade de informações geralmente é dividida em tabelas, então a identidade ainda é mais adequada em muitos casos

Quanto ao significado da chave primária, isso depende de como você o considera ao projetar; para o processamento de dados em si, a chave primária não precisa ser significativa, e se você exigir que a chave primária contenha significado de negócio, então a chave primária de identidade é obviamente sem sentido, mas, de modo geral, é melhor separar o significado do negócio do processamento de dados, o negócio está sempre mudando, se você quiser trazer o significado para a chave principal do design da tabela, então o negócio muda, terá que ajustar mais a estrutura da tabela.

Texto original trêsO login do hiperlink está visível.

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 uniqueidentifier e certifique-se de memorizá-loCancele a chave primária "Índices agregados

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.

(Fim)




Anterior:ASP.NET Núcleo (20) Prevenir ataques de redirecionamento aberto
Próximo:.NET Core programa .NET Core arquivos multilíngues de leitura e gravação de recursos (.resx)
 Senhorio| Publicado em 06/06/2023 22:42:46 |
SequentialGuidValueGenerator gera valores GUID sequenciais otimizados para uso com chaves de cluster ou índices do Microsoft SQL Server, resultando em desempenho melhor do que valores aleatórios. Este é o conjunto padrão de geradores para gerar colunas Guid do SQL Server quando elas são adicionadas.

O login do hiperlink está visível.


GUIDs sequenciais no Entity Framework Core podem não ser sequenciais

O login do hiperlink está visível.
 Senhorio| Publicado em 27/01/2024 11:07:29 |
[MSSQL] GUIDs ordenados e GUIDs não ordenados do SQL SERVER como testes primários de agregação de chaves
https://www.itsvse.com/thread-10607-1-1.html
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