Pengiraan Jarak Hamming pada Rentetan Binari dalam SQL
Untuk mengira jarak Hamming antara rentetan binari yang disimpan dalam pangkalan data SQL dengan cekap, penggunaan BINARI lajur tidak disyorkan kerana prestasi yang lemah. Sebaliknya, pertimbangkan untuk membahagikan data kepada berbilang lajur BIGINT untuk mewakili subrentetan data asal.
Mengikut pendekatan ini, anda boleh mencipta fungsi tersuai seperti yang disediakan di bawah:
<code class="sql">CREATE FUNCTION HAMMINGDISTANCE( A0 BIGINT, A1 BIGINT, A2 BIGINT, A3 BIGINT, B0 BIGINT, B1 BIGINT, B2 BIGINT, B3 BIGINT ) RETURNS INT DETERMINISTIC RETURN BIT_COUNT(A0 ^ B0) + BIT_COUNT(A1 ^ B1) + BIT_COUNT(A2 ^ B2) + BIT_COUNT(A3 ^ B3);</code>
Ini fungsi beroperasi pada 4 lajur BIGINT yang mewakili subrentetan lajur BINARI 32-bait asal. Ia mengira jarak Hamming setiap subrentetan dan menjumlahkan hasilnya.
Menggunakan kaedah ini meningkatkan kelajuan dengan ketara, seperti yang ditunjukkan dalam ujian, di mana ia lebih 100 kali lebih pantas daripada pendekatan berdasarkan lajur BINARI.
Selain itu, pendekatan alternatif menggunakan penukaran subrentetan untuk mengira jarak Hamming pada lajur BINARI dibentangkan, tetapi ia dianggap lebih rendah daripada pendekatan BIGINT kerana pertimbangan prestasinya.
Atas ialah kandungan terperinci ## Bagaimana Kita Boleh Mengira Jarak Hamming dengan Cekap pada Rentetan Binari dalam Pangkalan Data SQL?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!