## 如何有效率地計算 SQL 資料庫中二進位字串的漢明距離?

Barbara Streisand
發布: 2024-10-24 19:00:02
原創
326 人瀏覽過

## How Can We Efficiently Calculate Hamming Distance on Binary Strings in SQL Databases?

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中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板
關於我們 免責聲明 Sitemap
PHP中文網:公益線上PHP培訓,幫助PHP學習者快速成長!