SQL 中二進位字串的漢明距離計算
為了有效計算儲存在SQL 資料庫中的二進位字串之間的漢明距離,使用BINARY由於效能較差,不建議使用列。相反,請考慮將資料拆分為多個 BIGINT 欄位來表示原始資料的子字串。
依照這個方法,您可以建立一個自訂函數,如下所示:
<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>
This函數對4 個BIGINT 欄位進行操作,這些欄位表示原始32 位元組BINARY列的子字串。它計算每個子字串的漢明距離並對結果求和。
使用此方法可以顯著提高速度,如測試所示,它比基於 BINARY 列的方法快 100 倍以上。
此外,還提出了一種使用子字串轉換來計算 BINARY 列上的漢明距離的替代方法,但由於其性能考慮,它被認為不如 BIGINT 方法。
以上是## 如何有效率地計算 SQL 資料庫中二進位字串的漢明距離?的詳細內容。更多資訊請關注PHP中文網其他相關文章!