【发布时间】:2010-12-25 12:51:23
【问题描述】:
我处于两难境地。我不确定分离用户表是否是个好主意。我注意到我的游戏高分表表现,随着数字的增长,加载速度越来越慢。
我的当前用户表存储所有用户,目前大约有 10k 用户。我正在考虑将用户表(为将来)拆分成这样:
登录表 => 存储用户登录详细信息
==========================================
= id | username | password | tableid =
==========================================
= 1 | user1 | user1xx | 1 =
= 2 | user2 | user2xx | 1 =
...
= 20k1 | user20k1 | user20k1 | 2 =
etc
用户数据
==========================================
= id | money | items | preferences =
==========================================
= 1 | xx | xx | xx =
= 2 | xx | xx | xx =
...
= 20k1 | xx | xx | xx =
etc
所以,当我尝试获取用户数据时,我只需 LEFT JOIN 查询即可获取数据。
我的问题是,将用户数据存储在多个表中和将用户数据存储在单个表中之间有什么区别(速度、性能等)吗? (假设索引和主键相同)
我当前的表索引:
游戏高分表 => 列:id、gameid、名称、分数、日期
主键:id
索引:gameid
登录表 => 列:id、用户名、密码
主键:id (userid)
索引:用户名
用户数据 => 列:很多
索引:id
【问题讨论】: