【问题标题】:Response Time of getting data from server is too late从服务器获取数据的响应时间为时已晚
【发布时间】:2018-03-09 02:38:19
【问题描述】:

我在 Codeigniter(PHP 框架)中工作。在我的网站中,我列出了大约 10,00,000 条记录的“用户列表”。我应用了分页,每页限制为 10 条记录。当我加载网页时,我得到关注错误“致命错误:允许的内存大小为 134217728 字节已用尽”。我找到了设置“ini_set('Memory_limit','-1');”的解决方案在我的控制器中或在 php.ini 文件中配置。但现在问题是在配置“ini_set('Memory_limit','-1');”之后在我的控制器中,从服务器获取数据的响应时间太晚了。

我创建了动态查询来获取用户数据。如下所示:

SELECT DISTINCT (SELECT user_id from tbl_login_track WHERE user_id=U.user_id ORDER BY created_date desc LIMIT 1) as user,(SELECT created_date from tbl_login_track WHERE user_id=U.user_id ORDER BY created_date desc LIMIT 1) as user_login_date,DATEDIFF(CURRENT_TIMESTAMP,(SELECT created_date from tbl_login_track WHERE user_id=U.user_id ORDER BY created_date desc LIMIT 1)) as last_login,PP.product_plan_name , U.*,(SELECT COUNT(*) FROM tbl_product WHERE user_id = U.user_id) AS product_post_count FROM tbl_user as U JOIN tbl_product_plan as PP ON U.product_plan_id=PP.product_plan_id LEFT JOIN tbl_login_track as LT ON U.user_id=LT.user_id limit 0,10

必填:希望减少查询结果时间。

提前致谢。

【问题讨论】:

  • 允许无限内存永远不是解决方案。您的分页 sql 中一定有错误,因为 10 条记录限制永远不会导致内存耗尽。您需要找到内存泄漏。没有任何代码,它是在黑暗中的镜头。
  • 我检查了我的查询。这没有问题。并且“需要查找内存泄漏”是什么意思?
  • 您需要找出为什么在获取 10 条记录时会耗尽字节...这不正常。
  • 如果您发布您的代码,您实际上可能有机会帮助您。
  • 您输出的第一个错误是关于内存的 PHP 错误。这很可能与代码有关。 2,为了改进您的查询,我们需要查看架构。查询可以简化或者表可能缺少关系,没有办法知道

标签: php codeigniter


【解决方案1】:

我创建了动态查询来获取用户数据。如下所示:

SELECT DISTINCT (SELECT user_id from tbl_login_track WHERE user_id=U.user_id ORDER BY created_date desc LIMIT 1) as user,(SELECT created_date from tbl_login_track WHERE user_id=U.user_id ORDER BY created_date desc LIMIT 1) as user_login_date,DATEDIFF(CURRENT_TIMESTAMP,(SELECT created_date from tbl_login_track WHERE user_id=U.user_id ORDER BY created_date desc LIMIT 1)) as last_login,PP.product_plan_name , U.*,(SELECT COUNT(*) FROM tbl_product WHERE user_id = U.user_id) AS product_post_count FROM tbl_user as U JOIN tbl_product_plan as PP ON U.product_plan_id=PP.product_plan_id LEFT JOIN tbl_login_track as LT ON U.user_id=LT.user_id limit 0,10

【讨论】:

    猜你喜欢
    • 2011-10-21
    • 1970-01-01
    • 2021-01-11
    • 2016-03-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-03-25
    相关资源
    最近更新 更多