Artikel ini adalah artikel cermin dari terjemahan mesin, silakan klik di sini untuk melompat ke artikel aslinya.

Melihat: 17091|Jawab: 3

[Sumber] Gunakan guid sebagai kunci utama dan int sebagai perbandingan performa kunci utama

[Salin tautan]
Diposting pada 09/10/2019 16.48.35 | | | |
Dalam desain database, kami sering menggunakan guid atau int sebagai kunci utama, dan sesuai dengan pengetahuan yang telah kami pelajari, kami selalu merasa bahwa int lebih efisien sebagai kunci utama, tetapi tidak mungkin tanpa pengujian yang cermat

Jelaskan alasannya. Kebetulan selama pengoptimalan database hari ini, saya mengalami masalah ini, jadi saya melakukan pengujian.

Lingkungan Uji:

PC Desktop Pentiun(R) 4 CPU 3.06GHz
Menangkan XP profesional
RAM 1.5G DDR
SQL Server 2005 Pribadi  


Proses pengujian:

Pertama, buat database pengujian, Uji

Hasil tes adalah sebagai berikut:



Seperti disebutkan di atas, efisiensi menggunakan int sebagai kunci utama ditingkatkan dibandingkan dengan menggunakan guid sebagai kunci utama, terutama ketika ada kueri koneksi dan menghapus catatan.

Selain itu, dalam kueri data dengan kunci utama di GUID hari ini, batas waktu kueri berulang kali terjadi karena bersarang beberapa hasil sub-kueri. Oleh karena itu, saya mendukung penggunaan int sebagai kunci utama, dan saya tidak setuju dengan guid sebagai kunci utama.
Pandangan di atas mewakili pendapat pribadi, dan setiap orang dipersilakan untuk mengungkapkan pendapat mereka dan menjelaskan kelebihan dan kekurangan guid dan int sebagai kunci utama.

Tes tindak lanjut:


Setelah diingatkan oleh saudara-saudara, indeks non-clustered telah ditambahkan ke dua subtabel hari ini:

BUAT Index_Detail_Guid INDEKS NON-KLUSTER DI Test_Guid_Detail(Guid)
BUAT Index_Detail_id INDEKS NON-KLUSTER DI Test_Int_Detail(id)
Kemudian saya melakukan kueri koneksi internal dan menemukan bahwa seperti yang dikatakan @Xu Shaoxia, efisiensinya memang tidak cukup jelas untuk menunjukkan lebih dari 50%, dan pada dasarnya hanya sekitar 23% peningkatan, yang masih dapat diterima.

Oleh karena itu, disarankan

1. Pada sistem yang sering perlu melakukan migrasi data, disarankan untuk menggunakan Guid. Dan menambahkan indeks non-kluster ke bidang kunci asing yang sesuai, yaitu bidang yang digunakan untuk kueri gabungan, sangat bermanfaat untuk meningkatkan kinerja. Bidang kondisi where juga dapat ditambahkan sesuai untuk indeks non-kluster.

2. Saat menggunakan jenis Guid sebagai kunci utama, jenis data harus unikidentifier, dan pastikan untuk mengingat untuk membatalkan "indeks agregat" kunci primer

3. Untuk sistem yang tidak perlu dimigrasikan, atau sistem kecil, masih sangat nyaman untuk menggunakan int sebagai kunci utama, dan masih ada peningkatan efisiensi tertentu.





Mantan:A182 Wu Xiaobo "Buku Putih Kelas Menengah Baru 2019"
Depan:Kumpulan sumber daya terbaru dari Klub Membaca Fan Deng
 Tuan tanah| Diposting pada 08/02/2021 11.03.12 |
ujian
 Tuan tanah| Diposting pada 08/02/2021 11.03.31 |

Diposting pada 20/03/2025 16.13.51 |
Migrasi kunci primer int bukanlah masalah besar, selama kunci primer int dibatalkan sementara selama migrasi, dan kemudian membuka kenaikan mandiri setelah migrasi
Sanggahan:
Semua perangkat lunak, materi pemrograman, atau artikel yang diterbitkan oleh Code Farmer Network hanya untuk tujuan pembelajaran dan penelitian; Konten di atas tidak boleh digunakan untuk tujuan komersial atau ilegal, jika tidak, pengguna akan menanggung semua konsekuensi. Informasi di situs ini berasal dari Internet, dan sengketa hak cipta tidak ada hubungannya dengan situs ini. Anda harus sepenuhnya menghapus konten di atas dari komputer Anda dalam waktu 24 jam setelah pengunduhan. Jika Anda menyukai program ini, harap dukung perangkat lunak asli, pembelian pendaftaran, dan dapatkan layanan asli yang lebih baik. Jika ada pelanggaran, silakan hubungi kami melalui email.

Mail To:help@itsvse.com