|
|
|
Запрос по 3ем таблицам MySQL
|
|||
|---|---|---|---|
|
#18+
Есть 3 таблицы 1ая - history: id, user, group, type, object, time, status В ней хранится "история", где user - id пользователя, у которого произошло событие group - id группы, у которой произошло событие (к примеру, публикация записи) Причем, либо user, либо group равняется "0", т.к. событие не можем происходить одновременно у группы и пользователя. 2ая таблица friends: id, with, status, time здесь id и with - id пользователей, которые "дружат" друг с другом при status = 1 3ая таблица members_group (участники групп): user, group, time, level здесь user - id пользователя, group - id группы, в которой user состоит. Есть следующий запрос. Код: plsql 1. 2. 3. 4. 5. 6. 7. Данные он выводит верно. Все замечательно. Кроме одного. Запрос выполняется очень долго... php зависает на несколько минут после выполнения запроса. Можете помочь оптимизировать запрос и подсказать, что делать? Пробовал перестроить запрос с INNER JOIN для оптимизации с ключами - не получилось составить сам запрос... Буду безумно благодарен за помощь! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.01.2014, 22:35:37 |
|
||
|
Запрос по 3ем таблицам MySQL
|
|||
|---|---|---|---|
|
#18+
авторGROUP BY history.id не все поля входят в аггрегаты или group by ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.01.2014, 22:47:24 |
|
||
|
Запрос по 3ем таблицам MySQL
|
|||
|---|---|---|---|
|
#18+
Попробовал с другими полями в GROUP BY, различные комбинации по EXPLAIN лучше не стало, только увеличилось количество rows у members_group ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.01.2014, 23:07:27 |
|
||
|
|

start [/forum/topic.php?fid=47&msg=38533770&tid=1835362]: |
0ms |
get settings: |
4ms |
get forum list: |
13ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
53ms |
get topic data: |
10ms |
get forum data: |
2ms |
get page messages: |
40ms |
get tp. blocked users: |
1ms |
| others: | 207ms |
| total: | 334ms |

| 0 / 0 |
