Rumah > Artikel > pangkalan data > Bagaimana untuk Menyimpan Nilai Hash SHA1 secara Optimum dalam MySQL: BINARY(20) atau 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!