MySQLi запрос слишком медленный в цикле - PullRequest
0 голосов
/ 14 мая 2018

Ок, вот мой фрагмент кода

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();

Когда этот код, который я выполняю в php5.2, он выполняется в течение нескольких секунд, но в php7 (MySQLi) требуется более 500 секунд.

Я использую codeigniter 3.1.0 для разработки и пытаюсь переместить базовое web-приложение php5.2 на php7.

Может ли кто-нибудь помочь?

...