当我在一个表(Mysql)中有超过1,000,00~500,000,00个数据时,谁有快速登录和其他操作的好主意
表:UserInfo(超过1,000,00~500,000,00个用户)
UserID(PK int) LoginName(UK varchar(50)) LoginPassword LastLoginTime
表:LoginLog
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?
谁拥有更好的解决方案,拆分表规则,分区规则?
答案 0 :(得分:1)
你可以每30分钟左右运行一次cron来对数据进行非规范化,这样就没有表连接。 http://en.wikipedia.org/wiki/Denormalization