Bu makale makine çevirisi ayna makalesidir, orijinal makaleye geçmek için lütfen buraya tıklayın.

Görünüm: 17091|Yanıt: 3

[Kaynak] Birincil anahtar olarak guid, ana anahtar olarak ise int performans karşılaştırması kullanın

[Bağlantıyı kopyala]
Yayınlandı 9.10.2019 16:48:35 | | | |
Veritabanı tasarımında genellikle ana anahtar olarak guid veya int kullanırız ve öğrendiğimiz bilgilere göre, int'nin ana anahtar olarak daha verimli olduğunu her zaman düşündük, ancak dikkatli test olmadan bu imkansız

Nedenini açıklayın. Bugün veritabanının optimizasyonu sırasında bu sorunla karşılaştım, bu yüzden bir test yaptım.

Test Ortamı:

Masaüstü PC Pentiun(R) 4 CPU 3.06GHz
Win XP profesyonel
1.5G DDR RAM
SQL Server 2005 Personal  


Test Süreci:

Öncelikle, bir test veritabanı oluşturun, Test

Test sonuçları aşağıdaki gibidir:



Yukarıda belirtildiği gibi, int ana anahtar olarak kullanmanın verimliliği, özellikle bağlantı sorgusu ve kayıtların silinmesi durumunda, ana anahtar olarak guid kullanımına kıyasla daha iyidir.

Ayrıca, bugün GUID'deki ana anahtarla veri sorgusunda, birkaç alt sorgu sonucunun iç içe geçmesi nedeniyle sorgu zamanlaması tekrar tekrar meydana geldi. Bu nedenle, int ana anahtar olarak kullanılmasından yanayım ve guid'in ana anahtar olarak kullanılmasına katılmıyorum.
Yukarıdaki görüşler kişisel görüşleri temsil eder ve herkes görüşlerini ifade edebilir ve ana anahtar olarak yönlendirme ve zekanın avantajlarını ve dezavantajlarını açıklamaya davetlidir.

Takip testleri:


Kardeşlerin hatırlatmalarından sonra, bugün iki alt tabloya kümelenmiş olmayan bir indeks eklenmiştir:

Test_Guid_Detail(Guid) üzerinde kümelenmemiş İNDEKS Index_Detail_Guid OLUŞTUR
Test_Int_Detail(id) ÜZERINDE KÜMELENMEMIŞ İNDEKS Index_Detail_id OLUŞTUR
Sonra dahili bağlantı sorgusu yaptım ve @Xu Shaoxia'nın dediği gibi, verimlilik gerçekten %50'den fazlasını gösterecek kadar belirgin değil, temelde sadece %23 civarında iyileşme olduğunu ve bunun hâlâ kabul edilebilir olduğunu gördüm.

Bu nedenle, tavsiye edilir

1. Veri taşıması gereken sistemlerde Guid kullanılması önerilir. Ve ilgili yabancı anahtar alanlara, yani birleştirme sorguları için kullanılan alanlara kümelenmiş olmayan indeksler eklemek, performansı artırmak için büyük fayda sağlar. Where koşulu alanı, kümelenmemiş indeksler için uygun şekilde eklenebilir.

2. Guid tipi birincil anahtar olarak kullanılırken, veri tipi uniqueidentifier olmalı ve birincil anahtarın "aggregate index"ini iptal etmeyi unutman.

3. Taşınması gerekmeyen sistemler veya küçük sistemler için, int birincil anahtar olarak kullanmak hâlâ çok kullanışlıdır ve verimlilikte hâlâ belli bir iyileşme vardır.





Önceki:A182 Wu Xiaobo "2019 Yeni Orta Sınıf Beyaz Kağıdı"
Önümüzdeki:Fan Deng Okuma Kulübü'nün en yeni kaynaklarının bir koleksiyonu
 Ev sahibi| Yayınlandı 8.02.2021 11:03:12 |
test
 Ev sahibi| Yayınlandı 8.02.2021 11:03:31 |

Yayınlandı 20.03.2025 16:13:51 |
int birincil anahtar göçü büyük bir sorun değildir, yeter ki int birincil anahtar göç sırasında geçici olarak iptal edilse ve göç sonrası kendi kendine artımı açılsa
Feragatname:
Code Farmer Network tarafından yayımlanan tüm yazılım, programlama materyalleri veya makaleler yalnızca öğrenme ve araştırma amaçları içindir; Yukarıdaki içerik ticari veya yasa dışı amaçlarla kullanılamaz, aksi takdirde kullanıcılar tüm sonuçları ödemelidir. Bu sitedeki bilgiler internetten alınmakta olup, telif hakkı anlaşmazlıklarının bu siteyle hiçbir ilgisi yoktur. Yukarıdaki içeriği indirmeden sonraki 24 saat içinde bilgisayarınızdan tamamen silmelisiniz. Programı beğendiyseniz, lütfen orijinal yazılımı destekleyin, kayıt satın alın ve daha iyi orijinal hizmetler alın. Herhangi bir ihlal olursa, lütfen bizimle e-posta yoluyla iletişime geçin.

Mail To:help@itsvse.com