Новости
Документация
Download
Webboard
Поиск
FAQ/ЧаВо
Обратная связь




MySQL.RU - Webboard



Вернуться
126 - Incorrect key во временной таблице (switch) 04/12/2017 - 20:51:02
      Re: 126 - Incorrect key во временной таблице (Akina) 06/12/2017 - 22:19:36



From: switch - 04/12/2017 - 20:51:02
Subject:126 - Incorrect key во временной таблице
-----------------
Добрый день. имеется проблема, описанная тут
http://billly-bones.livejournal.com/6746.html

Запрос такой:


SELECT
SQL_CALC_FOUND_ROWS
asteriskcdrdb.contacts.id,
GROUP_CONCAT(DISTINCT cr.status SEPARATOR ' ') AS status,
'1' AS status1,
'2' AS status2,
'3' AS status3,
'4' AS status4,
asteriskcdrdb.contacts.number,
asteriskcdrdb.contacts.name,
asteriskcdrdb.contacts.mobile,
asteriskcdrdb.contacts.home,
asteriskcdrdb.contacts.address,
asteriskcdrdb.contacts.im,
asteriskcdrdb.contacts.email,
asteriskcdrdb.contacts.url,
asteriskcdrdb.contacts.number_text,
asteriskcdrdb.contacts.mobile_text,
asteriskcdrdb.contacts.home_text,
SUM(cr.cause) AS cause,

data3.2,
data3.3,
data3.4,
data3.5,
data7.2,
data7.3,
data7.4,
data7.5,
data7.6,
data7.7,
data7.8
FROM asteriskcdrdb.contacts
LEFT JOIN
asteriskcdrdb.campaign_results cr
ON cr.contact_id=asteriskcdrdb.contacts.id
AND cr.campaign_id=3
AND cr.attempt=0
AND (cr.is_last=1 OR cr.status='autocompleted')

LEFT JOIN
asteriskcdrdb.campaign_form_data_3_3 data3
ON data3.contact_id=asteriskcdrdb.contacts.id
LEFT JOIN
asteriskcdrdb.campaign_form_data_3_7 data7
ON data7.contact_id=asteriskcdrdb.contacts.id

WHERE asteriskcdrdb.contacts.contact_list_id=2

GROUP BY asteriskcdrdb.contacts.id
ORDER BY data3.2 ASC
LIMIT 0, 25

Когда в этот запрос добавляю ORDER BY то выскакивает ошибка. В процессе выполнения MYSQL создает временную таблицу и пожирает все доступное пространство в разделе (около 400 мб) и вываливает ошибку типа индекса нет во временной таблице. Сами таблицы небольшие, не больше трех мегабайт суммарно. В будущем вряд ли будут больше. Из-за особенностей системы нельзя сделать больше раздел (встраиваемая система). Да и нет гарантий что хватит гигабайтов если уж на трех мегабайтах съедает 400 мб.
От ORDER BY отказываться не хотелось бы, пользователю нужна сортировка (эти данные потом уходят в плагин datatables.net). Как можно победить такое идиотское поведение MYSQL?


[Это сообщение - спам!]

Последние сообщения из форума

Уважаемые посетители форума MySQL.RU!
Убедительная просьба, прежде чем задавать свой вопрос в этом форуме, обратите внимание на разделы:
- ответы на наиболее часто задаваемые вопросы - FAQ
- раздел документация
- раздел поиск по сообщениям форума и документации
Также, старайтесь наиболее подробно указывать свою ситуацию (версию операционной системы, версию MySQL, версию программного обеспечения, по которому возникает вопрос, текст возникающих ошибок, и др.)
Помните, чем конкретнее Вы опишете ситуацию, тем больше шансов получить реальную помощь.
 Имя:
 E-mail:
 Тема:
 Текст:
Код подтверждения отправки: Code
45313



РЕКЛАМА НА САЙТЕ
  Создание сайтов | |