0

当我在一个表中有超过 1,000,00~500,000,00 条数据时,谁对快速登录和其他操作有一些好主意(Mysql)

表:用户信息(超过 1,000,00~500,000,00 个用户)

UserID(PK int) LoginName(UK varchar(50)) LoginPassword LastLoginTime

表:登录日志

LogID(PK) UserID(FK) LoginTime LoginIp

表3:其他

OtherID(PK) UserID(FK) Others...

当使用登录时,我使用 sql(它可以很快):

select LoginPassword from UserInfo where LoginName = 'string'

当我显示 LoginLog 或其他表时,我将使用 SQL:

select U.LoginTime, 
       U.LoginIp,
       U.UserID,
       L.LoginName 
from UserInfo U 
left join LoginLog L 
  on U.UserID=L.UserID 
limit 0,10

我在 UserInfo 表中使用 LoginName 分区(它可以快速登录),但关联查询非常慢。

拆分表?分区使用 UserID?

谁有更好的解决方案,分表规则,分区规则?

4

1 回答 1

1

您可以每 30 分钟左右运行一次 cron 来对数据进行非规范化,这样就没有表连接。http://en.wikipedia.org/wiki/非规范化

于 2013-10-25T07:43:19.343 回答