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

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

WBOY
WBOYOriginal
2016-06-06 16:45:281213browse

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

回复内容:

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

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

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

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

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

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

要是只计划有少量的用户和数据和功能并以价格为标杆,并且数据一台服务器就能处理,那么楼上两位说的为真。 太多的表或者太多的列,都会影响到效率.
为每个用户建一个表一般在设计中不采用.
Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn