MySQLi query too slow in loop

2019-07-30 22:22发布

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?

0条回答
登录 后发表回答