我有一个超过10万个条目的potgreSQL数据库,每个条目都有一个大小为10000的位数组。有没有办法加快整个表位数组的汉明距离计算?由于
我尝试使用不同的数据类型,如bytea,文本和数字来保存位数组和计算汉明距离,我分别为每种数据类型尝试了异或门操作,文本比较和数字加法。但是我不能优化这个函数,使它超级快,目前它需要2秒的操作。目标是200毫秒
对于汉明距离不可能有很好的性能,因为它是一个递归过程,具有很高的算法复杂度和非常高的内存占用。https://www.cs.swarthmore.edu/布罗迪/论文/random14-hamming-distance.pdf
在像RDBMS这样的大数据集中使用它是不准确的。
存在一些其他的比较技术,它们没有递归过程,具有更低的复杂性和最小的占用空间…它们不像汉明距离那么精确,但可以做得很好,就像我写的那样:
请参阅" infopath basique">
你可以把两者结合起来…首先使用infimence basique来减少集合,其次使用hamming对一些非常少的结果…