therethere9
V2EX  ›  问与答

对于 1 亿个字符串(10~30 字符长度) 求一个算法尽量均匀映射到 128 个哈希桶

  •  
  •   therethere9 · Sep 19, 2020 · 2182 views
    This topic created in 2084 days ago, the information mentioned may be changed or developed.
    字符串是数据库的主键,考虑到数据量比较大,想根据字符串的哈希值建立对应的 128 个表,这样每个表只需要存储 1 百万条记录。
    请教有比较好的类似哈希函数吗?主要考虑因为哈希函数调用量非常频繁,挑选的哈希函数运算开销尽量要小,哈希映射的均匀分布质量的话,其实只要差不多就行了(不需要达到完全均匀分布,各个映射到的桶之间差 30%以内都可以接受) 语言目前为 python
    3 replies    2020-09-19 12:36:38 +08:00
    optional
        1
    optional  
       Sep 19, 2020 via iPhone
    参考 JAVA hashcode 直接 mod 128
    reus
        2
    reus  
       Sep 19, 2020 via Android
    取最后一个字符,& 0x0f
    Kahnn
        3
    Kahnn  
       Sep 19, 2020
    murmurhash
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   3126 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 424ms · UTC 13:31 · PVG 21:31 · LAX 06:31 · JFK 09:31
    ♥ Do have faith in what you're doing.