php+mysql大量用户登录解决方案分析
本文实例分析了php+mysql大量用户登录解决方案。分享给大家供大家参考。具体分析如下:
百度、QQ、360等大公司都拥有上亿的用户量,不仅所有子网站都通过一个账号登录,而且还开放用户平台,提供给其他网站使用,这种级别的数据量和访问量,如果不做优化,估计很快就会宕机,这些公司都是一个专门的团队,维护一个注册登录,细节设计的非常优秀,现在粗略谈下他们的设计方案.
大数据的时候,压力不在PHP,主要在MySQL,PHP可以做负载均衡,10台机器抗不住就用20台或者100台,这都不是瓶颈.
但是MySQL是单点的,无论做多少从库,都是优化查询,更新数据就无法只是简单的通过加机器解决了,而且查询也可以通过Memcache缓存减轻压力,所以不必要做多少从库的,一般1主4从就可以了.
下面主要介绍下数据库的解决方案:
假设用户可以通过“登录名”、“邮箱”或“手机号”登录.
表结构如下:
登录名与ID表,根据login_hash分100张表
CREATETABLEuser_login( login_nameVARCHAR()用户登录名,可以是“登录名”、“邮箱”或“手机号”登录 login_hashBIGINT用户登录名的HASH码 user_idBIGINT用户ID ); CREATETABLEuser_login0LIKEuser_login; CREATETABLEuser_login1LIKEuser_login; …… CREATETABLEuser_login100LIKEuser_login; ID与用户信息表,根据user_id分100张表
CREATETABLEuser_info( user_idBIGINT用户ID login_pwdCHAR()用户登录密码 ……其他信息,家庭住址、手机号、性别等等 ); CREATETABLEuser_info0LIKEuser_info; CREATETABLEuser_info1LIKEuser_info; …… CREATETABLEuser_info2LIKEuser_info;