MySQLi query too slow in loop

大兔子大兔子 提交于 2019-12-11 06:20:11

问题


Okk here's my code snippet

foreach ($res->result() as $row)
        {
            $query = "SELECT count(*) AS count FROM
                      (SELECT COUNT(DISTINCT TASKS.task_ID) AS count
                      FROM
                  TASKS JOIN TRANSLATOR_LANGUAGES
                  JOIN PROJECT_USERS JOIN TRANSLATED_TASKS JOIN PROJECTS
                      ON
                  (TASKS.task_ID = TRANSLATED_TASKS.task_ID AND
                  TASKS.project_ID = PROJECT_USERS.project_ID AND
                  PROJECTS.project_ID = TASKS.project_ID AND
                  TRANSLATED_TASKS.language_code = TRANSLATOR_LANGUAGES.language_code AND
                  PROJECT_USERS.translator_ID = TRANSLATOR_LANGUAGES.translator_ID AND
                  PROJECT_USERS.language_code = TRANSLATOR_LANGUAGES.language_code)
                  WHERE
                  ? = TRANSLATOR_LANGUAGES.language_code AND
                  ? = TRANSLATOR_LANGUAGES.translator_ID AND
                  ? = PROJECT_USERS.project_ID AND
                                  TASKS.archived < ?
                  GROUP BY TASKS.task_ID, TRANSLATOR_LANGUAGES.language_code, PROJECTS.vote_threshold
                  HAVING " . $this->getHavingClause($filter) . ") STATS_PHP"; 

            $res2 = $this->db->query($query, array($row->language_code,
                                       $translator_ID,
                                   $project_ID,
                                   $archived))->result_array();

When this same code I am executing in php5.2 it executes within seconds but it takes more than 500 seconds to complete in php7 (MySQLi).

I am using codeigniter 3.1.0 for development, and I am trying to move php5.2 base webApp to php7.

Can somebody Help?

来源:https://stackoverflow.com/questions/50330388/mysqli-query-too-slow-in-loop

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!