Mysql degsin快速选择

时间:2013-10-25 07:33:19

标签: mysql database-design

当我在一个表(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?

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

1 个答案:

答案 0 :(得分:1)

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