PHP处理大数据量老用户头像更新的操作

    /**
     * @title 老用户头像更新--每3秒调用一次接口,每次更新10条数据
     * @example user/createHeadPicForOldUser?
     * @method GET
     * @author 邹柯
     */
    public function createHeadPicForOldUserAction(){
        $domain=$_SERVER[‘HTTP_HOST‘];
        $ob = new UserModel();
        $user=M(‘user‘);
        $u_where="head_pic is null or head_pic=‘‘";
        $count=$user->where($u_where)->count();
        $user_info=$user->field(‘user_id‘)->where($u_where)->page(1,10)->select();
        if($count !=0){
            for($i=0;$i<10;$i++){
                //获取一个默认头像
                $h_pic=$ob->getDefaultUserHeadPic();
                $re=$user->data([‘head_pic‘=>$h_pic])->where([‘user_id‘=>$user_info[$i][‘user_id‘]])->save();
            }
            echo "还剩".$count."条记录没更新";
            exit("<script>setTimeout(function(){location.href=‘http://$domain/user/createHeadPicForOldUser‘;},3000);</script>");
        }else{
            exit("更新完毕");
        }        

    }
    //注册时给用户分配一个随机头像(或老用户登录时给其分配一个随机头像)
    public function getDefaultUserHeadPic(){
        $default_avatar=M(‘default_avatar a‘);
        $avatar_style=M(‘avatar_style s‘);
        $da_where[‘a.is_deleted‘]=0;
        $da_where[‘a.status‘]=1;
        $da_where[‘s.is_deleted‘]=0;
        $da_where[‘s.status‘]=1;
        $default_avatar_info=$default_avatar->field("a.id,img as head_pic")
                ->join(‘left join lc_avatar_style s on a.style_id=s.id‘)
                ->where($da_where)
                ->select();
        $cn=count($default_avatar_info);
        $cs=rand(0,$cn-1);
        return $default_avatar_info[$cs][‘head_pic‘];
    }    

原文地址:https://www.cnblogs.com/zouke1220/p/9096507.html

时间: 2024-10-04 02:31:07

PHP处理大数据量老用户头像更新的操作的相关文章

大数据量高并发的数据库优化

一.数据库结构的设计 如果不能设计一个合理的数据库模型,不仅会增加客户端和服务器段程序的编程和维护的难度,而且将会影响系统实际运行的性能.所以,在一个系统开始实施之前,完备的数据库模型的设计是必须的. 在一个系统分析.设计阶段,因为数据量较小,负荷较低.我们往往只注意到功能的实现,而很难注意到性能的薄弱之处,等到系统投入实际运行一段时间后,才发现系统的性能在降低,这时再来考虑提高系统性能则要花费更多的人力物力,而整个系统也不可避免的形成了一个打补丁工程. 所以在考虑整个系统的流程的时候,我们必须

大并发大数据量请求的处理方法

大并发大数据量请求一般会分为几种情况: 1.大量的用户同时对系统的不同功能页面进行查找,更新操作 2.大量的用户同时对系统的同一个页面,同一个表的大数据量进行查询操作 3.大量的用户同时对系统的同一个页面,同一个表进行更新操作 对于第一种情况一般处理方法如下: 一.对服务器层面的处理 1. 调整IIS 7应用程序池队列长度 由原来的默认1000改为65535. IIS Manager > ApplicationPools > Advanced Settings Queue Length : 6

大数据量并发处理(转)

大并发大数据量请求一般会分为几种情况: 一.大量的用户同时对系统的不同功能页面进行查找,更新操作 一.对服务器层面的处理 1. 调整IIS 7应用程序池队列长度 由原来的默认1000改为65535. IIS Manager > ApplicationPools > Advanced Settings Queue Length : 65535 2.  调整IIS 7的appConcurrentRequestLimit设置 由原来的默认5000改为100000. c:\windows\system

Atitit. BigConfirmTips 控件 大数据量提示确认控件的原理and总结O9

Atitit. BigConfirmTips 控件 大数据量提示确认控件的原理and总结O9 1. 主要的涉及的技术 1 2. 主要的流程 1 3. 调用法new confirmO9t(); 1 4. 设置确认在后的回溯事件 c.backHandle="window.opener.confirmSubmitBackeventHandle"; 2 5. 设置详细表格显示模板  c.tmplt="/publish/lookOverdetail_templt.jsp";

[转]浅析大数据量高并发的数据库优化

链接:http://www.uml.org.cn/sjjm/201308264.asp 高并发数据库可以同时处理海量信息,应用范围很广.今天我们将讨论的是大数据量高并发的数据库优化,希望对大家有所帮助. 一.数据库结构的设计 如果不能设计一个合理的数据库模型,不仅会增加客户端和服务器段程序的编程和维护的难度,而且将会影响系统实际运行的性能.所以,在一个系统开始实施之前,完备的数据库模型的设计是必须的. 在一个系统分析.设计阶段,因为数据量较小,负荷较低.我们往往只注意到功能的实现,而很难注意到性

大数据量处理

1.100亿个数字找出最大的10个 1.首先一点,对于海量数据处理,思路基本上是确定的,必须分块处理,然后再合并起来. 2.对于每一块必须找出10个最大的数,因为第一块中10个最大数中的最小的,可能比第二块中10最大数中的最大的还要大. 3.分块处理,再合并.也就是Google MapReduce 的基本思想.Google有很多的服务器,每个服务器又有很多的CPU,因此,100亿个数分成100块,每个服务器处理一块,1亿个数分成100块,每个CPU处理一块.然后再从下往上合并.注意:分块的时候,

大数据量下高并发同步的讲解(转)

文章转自:http://blog.csdn.net/xcw931924821/article/details/52475742 *************************************************************************************************************************************************************************************** 对于

大数据量表结构设计案例

在处理大数据量的表时,会消耗数据库的大量性能,所以,在设计数据库表时,要考虑到此种现象,将数据库设计的合理合法,来提高数据库性能减小数据库压力. 当表记录太多,如产品.的订单.大量客户等,是数据库访问压力的主要来源,此时,从数据库拆分表的角度来减轻压力,可以采用如下两种方法: 1.对表进行水平分割 水平分割:以该表主键PK的某个值为界限,将该表的记录水平拆分为两个表 2.对表进行垂直分割 垂直分割:表字段太多,按照表字段拆分,将一个表垂直分解为两个表 例:有产品表,数据量为10w,数据量稳定:

大数据量高并发访问的数据库优化方法

一.数据库结构的设计 如果不能设计一个合理的数据库模型,不仅会增加客户端和服务器段程序的编程和维护的难度,而且将会影响系统实际运行的性能.所以,在一个系统开始实施之前,完备的数据库模型的设计是必须的. 在一个系统分析.设计阶段,因为数据量较小,负荷较低.我们往往只注意到功能的实现,而很难注意到性能的薄弱之处,等到系统投入实际运行一段时间后,才发现系统的性能在降低,这时再来考虑提高系统性能则要花费更多的人力物力,而整个系统也不可避免的形成了一个打补丁工程. 所以在考虑整个系统的流程的时候,我们必须