Mutliple MySQL запросы требуют много времени для загрузки страницы - PullRequest
0 голосов
/ 31 мая 2019

У меня есть 11 таблиц, из которых я получаю результаты на одной странице с таблицей из 50 столбцов.Из-за того, как я получаю результаты (около 11 запросов в строке, 300-500 результатов означает 300x11 запросов), требуется целая жизнь, чтобы загрузить всю страницу.Некоторые из запросов не могут быть исключены, так как мне нужно зациклить их, чтобы получить отдельные результаты для каждой строки.

Сначала я запускаю запрос, чтобы получить все доступные активные пользователи, а затем запускаю все эти запросы на каждом изим, чтобы получить дополнительную информацию, необходимую.В запросах ниже я в основном собираю даты для 3 таблиц и название города.

Некоторые запросы:

SELECT DATE_FORMAT(event_date, '%d/%m/%Y - %H:%i') AS eventdate, event_id FROM `events` WHERE event_userid = $user_id AND event_group = 1 AND (event_type = 4 OR event_type = 5)

SELECT DATE_FORMAT(log_date, '%d/%m/%Y - %H:%i') AS logdate FROM `history` WHERE log_email = $user_email AND log_place = 1 AND log_status = 1 ORDER BY log_date DESC LIMIT 1

SELECT DATE_FORMAT(link_date, '%d/%m/%Y - %H:%i') AS linkdate FROM `link` WHERE link_user = $user_id AND link_status = 1

SELECT city_name FROM `cities` WHERE city_id = $user_city

И некоторые таблицы:

event_id |     event_date      | event_userid | event_group | event_type
1        | 2019-02-18 10:57:29 |       1      |      1      |    4
2        | 2019-02-25 11:50:20 |       1      |      1      |    5
3        | 2019-03-05 12:15:38 |       3      |      2      |    3
etc


log_id |  log_email   |      log_date       | log_place | log_status
22     | asd@asd.com  | 2019-01-30 10:15:14 |     1     |     1
23     | asd2@awo.com | 2019-02-15 12:34:48 |     2     |     1
25     | owl@bong.com | 2019-03-05 17:48:35 |     1     |     1
etc


link_id | link_user | link_comp |     link_date       | link_status
3       |     1     |    55     | 2019-02-15 14:43:37 |      1
4       |     3     |    15     | 2019-02-28 18:38:16 |      1
5       |     2     |    30     | 2019-03-08 10:12:50 |      2
etc


city_id |     city_added      | city_name | city_status
11      | 2019-01-05 10:43:30 |  London   |      1
15      | 2019-01-06 10:34:13 |  Vienna   |      1
18      | 2019-01-07 10:11:41 | Las Vegas |      2
etc

Есть ли лучший способ сделать это?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...