Rumah  >  Artikel  >  pangkalan data  >  Bagaimana untuk Menyimpan Nilai Hash SHA1 secara Optimum dalam MySQL: BINARY(20) atau VARCHAR(40)?

Bagaimana untuk Menyimpan Nilai Hash SHA1 secara Optimum dalam MySQL: BINARY(20) atau VARCHAR(40)?

Linda Hamilton
Linda Hamiltonasal
2024-11-25 05:00:15840semak imbas

 How to Optimally Store SHA1 Hash Values in MySQL: BINARY(20) or VARCHAR(40)?

Menyimpan Nilai Hash SHA1 dalam MySQL: Memilih Panjang Medan Optimum

Apabila menyimpan output cincang SHA1 dalam pangkalan data MySQL, ia adalah penting untuk mempertimbangkan panjang medan yang sesuai yang akan memegang nilai cincang ini. Artikel ini meneroka isu ini dengan meneliti pelbagai pilihan dan memberikan pengesyoran berdasarkan prestasi dan kecekapan storan.

Medan Pembolehubah lwn. Panjang Tetap

Untuk data panjang boleh ubah, VARCHAR mungkin kelihatan menggoda. Walau bagaimanapun, memandangkan nilai SHA1 sentiasa 160 bit panjang, menggunakan VARCHAR akan membazir ruang kerana bait tambahan yang diperlukan untuk spesifikasi panjang.

Storan Perduaan lwn. Heksadesimal

The Algoritma SHA1 mengembalikan nilai yang menggunakan 4 bit setiap aksara. Menyimpan nilai ini secara langsung memerlukan VARCHAR dengan panjang 40 aksara. Walau bagaimanapun, dengan menukar nilai SHA1 kepada binari menggunakan fungsi UNHEX, anda boleh mengurangkan keperluan storan kepada 20 aksara, menggunakan medan BINARI(20).

Pertimbangan Prestasi

Apabila menyimpan berjuta-juta rekod, BINARY(20) terbukti lebih cekap daripada CHAR(40), seperti yang ditunjukkan oleh ujian perbandingan. BINARI(20) memerlukan ruang storan yang kurang, yang membawa kepada prestasi yang lebih baik pada operasi pangkalan data.

Cadangan

Oleh itu, pendekatan yang disyorkan untuk menyimpan nilai cincang SHA1 dalam MySQL adalah untuk gunakan BINARY(20) dan tukar nilai SHA1 heksadesimal kepada binari menggunakan UNHEX. Kaedah ini menyediakan penggunaan ruang storan yang optimum dan memastikan prestasi pangkalan data yang cekap.

Atas ialah kandungan terperinci Bagaimana untuk Menyimpan Nilai Hash SHA1 secara Optimum dalam MySQL: BINARY(20) atau VARCHAR(40)?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn