当前位置:Gxlcms > PHP教程 > 做一个大量用户的历史记录在线同步,用mysql,是为每个用户建一个Table效率高还是在一个Table里用UID标识不同用户效率高?

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

时间:2021-07-01 10:21:17 帮助过:4人阅读

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

回复内容:

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

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

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

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

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

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

要是只计划有少量的用户和数据和功能并以价格为标杆,并且数据一台服务器就能处理,那么楼上两位说的为真。 太多的表或者太多的列,都会影响到效率.
为每个用户建一个表一般在设计中不采用.

人气教程排行