首页 >后端开发 >php教程 >做一个大量用户的历史记录在线同步,用mysql,是为每个用户建一个Table效率高还是在一个Table里用UID标识不同用户效率高?

做一个大量用户的历史记录在线同步,用mysql,是为每个用户建一个Table效率高还是在一个Table里用UID标识不同用户效率高?

WBOY
WBOY原创
2016-06-06 16:45:281243浏览

所谓效率……参见SAE收费方式。越便宜越好。
sae.sina.com.cn/?

回复内容:

两个都不好,可以基于uid哈希分表 或基于时间线哈希分表。看具体需求定义
这个"大量"究竟是哪个数量级, 一万, 十万, 百万, 千万? 大概每个用户的数据量是多大

活跃用户和非活跃用户的比例如何? 数据的读写比是如何, 是大量的读少量的写, 还是经常写但是很少读?

要提供什么功能? 如果只是简单的存储和读取历史记录, 可以考虑Key-Value数据库, 如果要做分析, 是否会有跨用户的查询?

也许这些情况都不明朗, 但是要先考虑下.

不过直觉告诉我, 楼主的大量用户不会大到哪里去, 所以随便怎么设计应该都能凑合 具体要看你需要实现的功能和设计架构以及用户数量了。

如果你是为海量用户实现各用户不同的复杂功能,则为每个用户建独立表更好。这样可以将用户根据ID或区域等分布到不同的多台Mysql服务器上,便于优化、管理和容错。

要是只计划有少量的用户和数据和功能并以价格为标杆,并且数据一台服务器就能处理,那么楼上两位说的为真。 太多的表或者太多的列,都会影响到效率.
为每个用户建一个表一般在设计中不采用.
声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn