php - 获取大数据时mysql连接超时

标签 php mysql database-connection

我在 tbl_user 表中有超过 1 个 lac 用户,我想选择所有用户 ID 并使用每个 用户 ID 我正在尝试获取生命周期积分和使用积分,然后为每个用户获取可用积分 如下所述,

   $get_all_userid_qry = "SELECT user_id FROM tbl_user WHERE site_id=12345 AND             active='1'";
   $get_all_userid = $con->fetchAll($get_all_userid_qry);

    //echo '<pre>';print_r($get_all_userid);exit();

   $available_points_array = array();
   $points_threshold_Distribution_data = array();

   $userCount = count($get_all_userid);



    for($i = 0; $i < $userCount; $i++)
    {
        $name_points_qry =  "SELECT sum(earned_points) as points FROM tbl_points WHERE site_id=12345 AND user_id='".$get_all_userid[$i]->user_id."' ";
        $name_points_row = $con->fetchRow($name_points_qry);

        $lifetime_points = $name_points_row->points;

        //get used points by user

        $get_used_points = "select sum(points_used) as used_pts from tbl_claimed WHERE site_id=12345 AND user_id='".$get_all_userid[$i]->user_id."' ";
        $get_used_points_row= $con->fetchRow($get_used_points);

        $used_points = $get_used_points_row->used_pts;

        $available_points = $lifetime_points - $used_points;
        $available_points_array[] = $available_points;
    }

但是,我发现很难从 tbl_user 中选择所有用户 ID,因为我的 sql 连接在两者之间超时,并且当我使用 print_r() 时它没有显示完整的结果数组。

请建议如何选择如此大量的数据。

最佳答案

就在您开始的 php 标记之前输入:

ini_set('memory_limit', '2048M');

或者您可以在您的 htaccess 文件中添加这一行:

php_value memory_limit 64M

希望对您有所帮助!

关于php - 获取大数据时mysql连接超时,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20697151/

相关文章:

php - 价格低-高/高-低过滤 PHP/Mysql

php - Codeigniter:关于如何构建重置密码/忘记密码的简单直接教程?

PHP Post 总是返回 1

c++ - Qt中如何通知MySql Server关闭

php - PDO 连接 AWS RDS 字符集

php - 如何解决中止连接 mysql?

PHP 将图像附加到电子邮件

javascript - 在另一个文件中追加数据

php - INSERT 语句仅有效一次

java - Spring - 使用 hibernate 和 spring security 扩展类