|
MySQL клиент зависает при выполнении запроса left join
|
|||
---|---|---|---|
#18+
Уважаемые форумчане. Помогите с возникшей проблемой. MySQL клиент уже 6й час выполняет запрос: create table 555 as (SELECT * from IMAGES left join Zexel on IMAGES.UFIELD00=Zexel.UFIELD02Z) Explain запроса: explain SELECT * from IMAGES left join Zexel on IMAGES.UFIELD00=Zexel.UFIELD02Z id|select_type|table. |partitions|type|possible_keys |key|key_len|ref|rows |filtered|Extra | --|------------|---------|-----------|-----|-----------------|---|---------|---|---------|--------|--------------------------------------------------| 1|SIMPLE |IMAGES| |ALL | | | | |3326818| 100| | 1|SIMPLE |Zexel | |ALL | | | | | 143681| 100|Using where; Using join buffer (Block Nested Loop)| Информация по объединяемым таблицам: CREATE TABLE `IMAGES` ( `IMGNAME` char(10) DEFAULT NULL, `LINENUM` int(11) DEFAULT NULL, `IMGLABEL` varbinary(15) DEFAULT NULL, `UFIELD00` int(11) DEFAULT NULL, `FINFO` char(2) DEFAULT NULL, `FPIECE` char(2) DEFAULT NULL, `FPIECE_` char(1) DEFAULT NULL, `UFIELD01` int(11) DEFAULT NULL, `UFIELD02` int(11) DEFAULT NULL, `XPOS` int(11) DEFAULT NULL, `YPOS` int(11) DEFAULT NULL, `WIDTH` int(11) DEFAULT NULL, `HEIGHT` int(11) DEFAULT NULL, KEY `index1` (`UFIELD00`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8 CREATE TABLE `Zexel` ( `LINENUMZ` int(11) DEFAULT NULL, `UFIELD00Z` varbinary(10) DEFAULT NULL, `UFIELD01Z` char(1) DEFAULT NULL, `UFIELD02Z` int(11) DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=utf8 Версия MySQL на сервере 5.7.29 Пробовал выполнять его и на сервере с MySQL 5.5.64-MariaDB - тоже процесс шел больше часа, но прервался из-за обрыва соединения. У таблицы IMAGES пробовал менять движок на MyISAM - не помогает. ... |
|||
:
Нравится:
Не нравится:
|
|||
01.05.2020, 18:03 |
|
MySQL клиент зависает при выполнении запроса left join
|
|||
---|---|---|---|
#18+
Во-первых, тут есть форматирование, после которого нечитаемая "лапша" превращается в красиво оформленный и подсвеченный код или форматированный текст. Во-вторых, есть кнопка Просмотр, которая позволяет убедиться, что теги форматирования применены правильно. И, в третьих - где статистика по наполнению таблиц? количество записей, количество соответствий и пр.? ... |
|||
:
Нравится:
Не нравится:
|
|||
01.05.2020, 18:17 |
|
MySQL клиент зависает при выполнении запроса left join
|
|||
---|---|---|---|
#18+
Akina, По форматированию - учту. Статистику таблиц прилагаю в скриншоте. По количеству соответствий - не совсем понимаю откуда взять эти данные.. ... |
|||
:
Нравится:
Не нравится:
|
|||
01.05.2020, 18:34 |
|
MySQL клиент зависает при выполнении запроса left join
|
|||
---|---|---|---|
#18+
vit332, Вы прикалываетесь, что ли, в честь пятницы? Спасибо, развлекли. ... |
|||
:
Нравится:
Не нравится:
|
|||
01.05.2020, 18:43 |
|
MySQL клиент зависает при выполнении запроса left join
|
|||
---|---|---|---|
#18+
vit332, на поле`UFIELD02Z` int(11) может индекс сделать? Код: sql 1. 2.
... |
|||
:
Нравится:
Не нравится:
|
|||
01.05.2020, 20:27 |
|
MySQL клиент зависает при выполнении запроса left join
|
|||
---|---|---|---|
#18+
Alex_Ustinov, Спасибо, попробую. Если завтра до утра не выполнится запрос то остановлю его и сделаю индекс. ... |
|||
:
Нравится:
Не нравится:
|
|||
01.05.2020, 21:24 |
|
MySQL клиент зависает при выполнении запроса left join
|
|||
---|---|---|---|
#18+
1) а просто SELECT выполнить получается или нет? 2) попробовать убрать скобки (в MySQL документации скобок нет) 3) не смешивать db engines ... |
|||
:
Нравится:
Не нравится:
|
|||
01.05.2020, 22:11 |
|
MySQL клиент зависает при выполнении запроса left join
|
|||
---|---|---|---|
#18+
1) Да, индекс. 2) Настоятельно рекомендую в запросе полностью описать структуру создаваемой таблицы, и указать список копируемых в неё полей. Вряд ли нужны все... 3) Интересно, на какое количество итоговых записей Вы рассчитываете? поскольку ни одно из участвующих в связывании полей не уникально - потенциально результат может содержать до полутриллиона записей... ... |
|||
:
Нравится:
Не нравится:
|
|||
01.05.2020, 22:13 |
|
MySQL клиент зависает при выполнении запроса left join
|
|||
---|---|---|---|
#18+
Создал индекс поля UFIELD02Z у таблицы Zexel по совету Alex_Ustinov и Akina Сделал одинаковый движок MyISAM у обоих таблиц по совету mini.weblab (и скобки убрал) Запрос обработался за 100 секунд. Получилась результирующая таблица 3460247 записей. Всем спасибо! p.s. во вложении explain успешного запроса ... |
|||
:
Нравится:
Не нравится:
|
|||
02.05.2020, 10:26 |
|
|
start [/forum/topic.php?fid=47&fpage=22&tid=1828594]: |
0ms |
get settings: |
11ms |
get forum list: |
15ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
43ms |
get topic data: |
14ms |
get forum data: |
3ms |
get page messages: |
52ms |
get tp. blocked users: |
2ms |
others: | 284ms |
total: | 432ms |
0 / 0 |