V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
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
fatyoung
V2EX  ›  MySQL

周五思考题:关于分表和分区表导致的热点数据问题

  •  
  •   fatyoung · 2023-11-03 15:25:43 +08:00 · 488 次点击
    这是一个创建于 371 天前的主题,其中的信息可能已经有所发展或是发生改变。
    以 mysql 为背景。假设我要把用户的发言记录(或者说朋友圈)持久化,因为用户量比较大,每个用户的发言记录数量不限制。

    我先想到的处理方法就是根据用户 ID 取模做分表存储,这样方便查询每个用户各自发表过的记录,但是可能存在热点数据的问题,分表数据量可能不均匀。

    还有一个疑问就是 mysql 是支持分区表的,这种场景下,使用用户 ID 取模的方式去分表是否合适?使用分区表或者分表去做,有什么区别吗?或者说优缺点?

    核心场景有两个:
    1.用户发言
    2.用户查看自己的发言记录

    ps: 大家请暂时忽略数据量问题,忽略 "这个数据量单表就能支撑"
    1 条回复    2023-11-04 12:57:07 +08:00
    julyclyde
        1
    julyclyde  
       2023-11-04 12:57:07 +08:00
    可以做一个 router 函数,根据 id 进行人为分区
    代替取模这种和业务无关的纯计算方法
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2950 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 22ms · UTC 11:01 · PVG 19:01 · LAX 03:01 · JFK 06:01
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.