› MySQL 5.5 Community Server
› MySQL 5.6 Community Server
› Percona Configuration Wizard
› XtraBackup 搭建主从复制
Great Sites on MySQL
› Percona
› MySQL Performance Blog
› Severalnines
推荐管理工具
› Sequel Pro
› phpMyAdmin
推荐书目
› MySQL Cookbook
MySQL 相关项目
› MariaDB
› Drizzle
参考文档
› http://mysql-python.sourceforge.net/MySQLdb.html
yakczh
V2EX  ›  MySQL

mysql写数据根据某种hash分布存储到不同机器上,怎么样实现机器增加以后,根据hash定位的规则一致?

  •  
  •   yakczh · Nov 10, 2013 · 3596 views
    This topic created in 4725 days ago, the information mentioned may be changed or developed.
    举个例子,比如生成一个编号的空间1-10 现在两台机器,小于5的编号存到A机器上,大于5的存到B机器上, 这样查询的时候根据id就可以知道存在哪台机器上,如果后来增加一台机器,按编号1-3,3-6,6-10这样平均切分,就可以将流量继续分摊,但是这样对于原来的对应关系就乱了,比如编号8 ,最早是存在B机器上,但是现在可以存在C机器上,不能一步就定位,有什么好的办法,在增加机器以上,保证原来的定位规则不变吗?
    5 replies  •  1970-01-01 08:00:00 +08:00
    rrfeng
        1
    rrfeng  
       Nov 10, 2013
    HASH 的时候加入一个 server id ,比如 ip/hostname
    wy315700
        2
    wy315700  
       Nov 10, 2013
    一致性哈希
    polythene
        3
    polythene  
       Nov 10, 2013
    Livid
        4
    Livid  
    MOD
    PRO
       Nov 10, 2013   ❤️ 1
    用机器 IP 作为 hash 算法的输入

    id = hash(server.ip)
    yakczh
        5
    yakczh  
    OP
       Nov 10, 2013
    这种是不是意味着key的最大空间是2^32?
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Privacy   ·   Solana   ·   3011 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 29ms · UTC 13:54 · PVG 21:54 · LAX 06:54 · JFK 09:54
    ♥ Do have faith in what you're doing.