V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
iloveMonica
V2EX  ›  程序员

请教各位是怎么处理冗余用户信息的

  •  
  •   iloveMonica · 2023-02-16 10:52:16 +08:00 via iPad · 2862 次点击
    这是一个创建于 407 天前的主题,其中的信息可能已经有所发展或是发生改变。

    随着用户量增加,有很多用户长期不登陆,甚至有的用户已经过世,如何处理他们留下的信息? 处理这些垃圾数据第一是节省空间,储存空间很贵,如果不删掉这些信息会一直消耗储存成本。第二是影响数据库性能,在需要遍历整个表的时候(找回密码,搜索账号),过多数据让搜索速度变慢。 我想的方法是:所有两年不活跃的账号,先发短信 /邮件提醒用户,再过半年到一个月再次提醒,第三年直接删除账号相关数据。 对于违规封禁的用户,给一个注销账号的选项,但是账号绑定的邮箱或手机号不能在 3 年再次注册。 考虑到储存空间的昂贵,所有注销操作全部是真删除而不是标记为删除。 如果未来有检测用户是否过世的 api ,可以在检测到用户死亡后锁定账号并在一年后删除相关数据。

    32 条回复    2023-02-17 18:15:38 +08:00
    MoRanjiang
        1
    MoRanjiang  
       2023-02-16 11:01:13 +08:00
    用大厂的冷存储?价格便宜,但如果用户要登陆需要时间恢复数据。
    LeegoYih
        2
    LeegoYih  
       2023-02-16 11:05:03 +08:00
    按我的理解硬盘是硬件里最便宜的设备了,只存数据基本上不会影响成本吧?而且数据应该是比硬件值钱的,一般都不会物理删除,可以备份到冷库或者打包保存。

    如果表结构设计合理,不会影响查询效率,不太清楚你描述的“找回密码”和“搜索账号”在什么场景下会查全表。

    我个人非常讨厌服务或软件删除用户信息,过了几年想回去玩游戏 /找历史记录,结果你把我号删了?
    whyso
        3
    whyso  
       2023-02-16 11:05:15 +08:00
    @MoRanjiang 我玩的一个游戏应该就是你说的这样,大概两年没玩,登录就是读条恢复数据
    zuixinwenyue
        4
    zuixinwenyue  
       2023-02-16 12:21:05 +08:00
    用户信息非常宝贵,相关数据也不应该删除,数据过多的话 可以尝试下分表操作。理论上除非用户自己注销,用户都应该可以正常登录,就算用户自己注销 数据也应该是物理删除,方便以后大数据分析 等等,总之数据是非常宝贵的
    wxf666
        5
    wxf666  
       2023-02-16 12:49:22 +08:00
    为啥“找回密码”和“搜索账号”会遍历全表??
    foolishcrab
        6
    foolishcrab  
       2023-02-16 12:57:39 +08:00 via iPhone
    你说的性能不够的地方都可以在技术方案上规避掉的,再怎么也轮不到清除数据。

    就这么说吧,如果你的业务真的庞大到用户表 mysql 都支撑不住,那个时候你删个数据起码 cto 审批。
    没到这规模的话老老实实研究下缓存啥的
    iloveMonica
        7
    iloveMonica  
    OP
       2023-02-16 12:59:05 +08:00 via iPad
    @wxf666 用手机号匹配 uid ,一个一个去对比,找到 uid 再去把对应的密码修改了。添加好友也是根据昵称匹配 uid ,在用 uid 寻找用户头像这些。
    tongyifan
        8
    tongyifan  
       2023-02-16 13:01:23 +08:00 via Android
    @iloveMonica 为什么不加索引呢
    opengps
        9
    opengps  
       2023-02-16 13:04:51 +08:00   ❤️ 1
    这得多大的系统,需要为这个数据担心?一个人的注册信息占了你多大存储呢?
    ghostwind
        10
    ghostwind  
       2023-02-16 13:24:58 +08:00
    建议先说下用户规模。。百万,千万还是上亿。。。
    julyclyde
        11
    julyclyde  
       2023-02-16 13:38:24 +08:00
    出于成本和隐私考虑,是应该删除
    但是你得考虑一下删除之后,这个用户和其它人发生过的关系怎么处理

    举个例子:我曾经见过某 cmdb 系统,服务器使用数据库外键的方法“属于”人。然后这人离职了……
    LeegoYih
        12
    LeegoYih  
       2023-02-16 13:46:14 +08:00
    @iloveMonica 如果这 2 个功能你们是通过扫全表实现的,那么应该考虑换一位 CTO 了。
    LaGeNanRen
        13
    LaGeNanRen  
       2023-02-16 13:46:44 +08:00
    大厂优化成本时考虑冷存,但你这到底是什么体量的服务
    shyangs
        14
    shyangs  
       2023-02-16 13:55:52 +08:00
    隨便一部小說,比如《天龍八部》都有 100 萬字,一個人的註冊資訊有小說佔空間?

    你公司的儲存空間還不如盜版小說站?
    iloveMonica
        15
    iloveMonica  
    OP
       2023-02-16 14:01:43 +08:00 via iPad
    @opengps 不只是注册的,还有这个人创建的一些东西,头像,发过的图片,文字这些
    RiverMud
        16
    RiverMud  
       2023-02-16 14:15:50 +08:00
    @iloveMonica 你这到底啥服务啊?用户发的图片、文字这些东西,服务不倒闭的情况下都不应该删吧?
    zoharSoul
        17
    zoharSoul  
       2023-02-16 14:46:02 +08:00
    不差这点
    nzynzynzy
        18
    nzynzynzy  
       2023-02-16 14:48:08 +08:00
    怪不得我用了十多年的 163 邮箱被彻底清空了:)
    watzds
        19
    watzds  
       2023-02-16 14:51:26 +08:00
    国外一些服务,倒是收到过要删除账号的提醒
    Maboroshii
        20
    Maboroshii  
       2023-02-16 16:07:58 +08:00
    啥业务这么大数据量? 一般单机 mysql 都随便应付啦
    xuanbg
        21
    xuanbg  
       2023-02-16 16:18:46 +08:00
    不是做网盘的话,用户数据能有多大?现在存储这么便宜,能省几个钱?
    Cormic
        22
    Cormic  
       2023-02-16 16:47:58 +08:00
    这两天整理 bitwarden 里的密码,发现很多网站倒闭了,或者转手了(感谢原站没卖用户表),或者因为众所周知的原因封禁了没实名的账户,或者因为他们自己出现过安全问题把老用户全部干掉了。确实大部分网站我是真的好几年都没登陆了。

    对于这些网站,我的选择是直接删除 bitwarden 记录和从收藏夹清空,懒得折腾,也不会再用,部分比较重要的类型的网站,我甚至会在脑子里拉个黑名单。
    Martens
        23
    Martens  
       2023-02-16 17:34:28 +08:00
    硬盘应该不贵啊,redis 内存可能贵点。

    可以做冷热数据分离,对于长时间不登录的直接丢到便宜的存储里,下次登录再读到库里
    linvaux
        24
    linvaux  
       2023-02-16 17:50:28 +08:00
    数据比硬盘值钱
    nvideo
        25
    nvideo  
       2023-02-16 18:03:19 +08:00
    HBase
    itechnology
        26
    itechnology  
       2023-02-16 18:17:36 +08:00
    用户数据很宝贵的,你信不信问问 CTO/老板,他们绝对不允许真实删除用户数据
    vitoaaazzz
        27
    vitoaaazzz  
       2023-02-16 19:12:09 +08:00
    不说数据能有多少,就一般系统用户能有多少?
    paradoxs
        28
    paradoxs  
       2023-02-16 19:15:40 +08:00
    你根本就没有多少用户。。。

    别想这些没用的
    ck65
        29
    ck65  
       2023-02-16 19:22:27 +08:00 via iPhone
    说一下哪家产品?我避个雷。
    flyqie
        30
    flyqie  
       2023-02-17 10:27:22 +08:00 via Android
    #26 +1
    #29 +1

    OP 的神奇脑回路。。

    这玩意还搞删除?

    别把你的技术问题用这种奇怪的方式解决,非活跃用户不等于垃圾数据,而且万一遇上监管问题有你好受的。

    另外,用户过世不代表账户会被遗弃,各大厂商推出的纪念账户你是看不到吗。。
    koloonps
        31
    koloonps  
       2023-02-17 11:46:59 +08:00
    what? 为什么要删除用户,非活跃用户移到其他数据库不就好了?等人家上线的时候再自动导入
    zdt3476
        32
    zdt3476  
       2023-02-17 18:15:38 +08:00
    不是,你是用 redis 存吗? 如果 mysql ,硬盘能值几个钱,需要删除?表示不是很理解,就算你是十几亿的用户量,硬盘成本也没多少啊,而且反过来说,你有这么大的用户量了,也不差这点存储成本了。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   4783 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 34ms · UTC 05:37 · PVG 13:37 · LAX 22:37 · JFK 01:37
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.