如何设计上十亿的用户表
2014-06-15 21:00
239 查看
当用户表达到了上十亿这样的规模,我们应该如果设计好呢?
我们假设一般项目的用户有哪些基础应用功能呢?一般至少应该有“注册/登录” 和 “填写/修改用户资料”两个基本基本功能是吧?那么我们就根据这两个基本的功能来设计表,如果有其他扩展功能,可以增加其他扩展表方式,本章不讨论其他扩展表的设计。
针对注册/登录功能,我们采用hash散列设计 user_register 表,表只有三列,分别为user_id,user_name,password,把user_name做为hask_key进行hash散列,方式:把user_name进行md5加密变成16进制的数字,然后转化成10进制数字,采用hash散列算法,就可以判断是存储到哪个库的哪个表。可以设计10个库,每个库100个表,表里面的user_name存储的是原始的user_name值,hash散列算法只是实现判断具体存储在哪个库的哪个表而已,这样用户在注册或者登录时,就可以引导用户连接到具体的分表去操作。
针对“填写/修改用户资料”,我们根据 user_id 进行hash散列,因为user_id本身已经是数字,所以直接计算就可以了,比较简单。
当用户表达到了上十亿这样的规模,我们应该如果设计好呢?
我们假设一般项目的用户有哪些基础应用功能呢?一般至少应该有“注册/登录” 和 “填写/修改用户资料”两个基本基本功能是吧?那么我们就根据这两个基本的功能来设计表,如果有其他扩展功能,可以增加其他扩展表方式,本章不讨论其他扩展表的设计。
针对注册/登录功能,我们采用hash散列设计 user_register 表,表只有三列,分别为user_id,user_name,password,把user_name做为hask_key进行hash散列,方式:把user_name进行md5加密变成16进制的数字,然后转化成10进制数字,采用hash散列算法,就可以判断是存储到哪个库的哪个表。可以设计10个库,每个库100个表,表里面的user_name存储的是原始的user_name值,hash散列算法只是实现判断具体存储在哪个库的哪个表而已,这样用户在注册或者登录时,就可以引导用户连接到具体的分表去操作。
针对“填写/修改用户资料”,我们根据 user_id 进行hash散列,因为user_id本身已经是数字,所以直接计算就可以了,比较简单。
相关文章推荐
- 如何设计上十亿的用户表
- 瞬间之美:Web 界面设计如何让用户心动
- 蜘蛛侠论坛核心框架分析1 - 如何设计与实现当前访问用户
- 如何设计满足用户需求的产品界面?
- 交互设计学习笔记之《如何减少用户的等待感》【交互设计】
- 交互设计学习笔记之《如何帮助用户探索和尝试》【交互设计】
- [转帖]满足用户的需要:如何使用户参与到网站设计中来
- 如何设计网站,才能打动用户的心?
- 如何设计“找回用户帐号”功能
- 陈皓:如何设计“找回用户帐号”功能
- 如何设计新手用户引导
- PCOIP如何保证图形设计用户的访问
- 读书笔记[1]:《瞬间之美——Web界面设计如何让用户心动》
- 如何设计出更好用户体验的网站
- 如何设计新手用户引导
- 样章试读之瞬间之美:Web 界面设计如何让用户心动.
- 交互设计:如何设计用户体验好的分页
- web设计师必看“瞬间之美-Web界面设计如何让用户心动”
- 交互设计学习笔记之《如何进行用户研究》【交互设计】
- 信息设计:如何让用户快速高效的获取信息?