zEitEr
Новичок
LEFT JOIN завалил диск...
Доброо дня!
Подскажите, чего не так сделал:
При активной посещаемости страницы, на диске во временной директории mysql, образовалось временных файлов размеров 42Гб...
В таблице `pages`:
Данные 71,332 Байт
Индекс 96,256 Байт
Всего 163.7 КБ
Строки 727
В таблице `page_text`:
Данные 3,718.0 КБ
Индекс 2,472.0 КБ
Всего 6,190.0 КБ
Строки 727
Беглый просмотр файла с временными данными показал, что в нем данные из `page_text`.
Видимо эту таблицу сервер MySQL из-за LEFT JOIN перелапачивает несколько раз.
Вот как запрос тогда оптимально переписать? Или вообще экономичнее будет три запроса отдельных делать?
-~{}~ 13.02.09 18:23:
Один такой запрос создает временный файл на диске размером ~600Мб О_о
Жесть...
Доброо дня!
Подскажите, чего не так сделал:
Код:
SELECT `t1` . * , `pt`.`page_desc` , `pt`.`page_text` ,
`t2`.`page_id` AS `next_page_id` , `t2`.`page_title` AS `next_page_title` ,
`t3`.`page_id` AS `prev_page_id` , `t3`.`page_title` AS `prev_page_title`
FROM `pages` AS `t1`
LEFT JOIN `pages` AS `t2` ON ( `t2`.`page_id` > `t1`.`page_id`
AND `t2`.`page_type` = '1'
AND `t2`.`is_active` != '0' )
LEFT JOIN `pages` AS `t3` ON ( `t3`.`page_id` < `t1`.`page_id`
AND `t3`.`page_type` = '1'
AND `t3`.`is_active` != '0' )
LEFT JOIN `pages_text` AS `pt` ON ( `pt`.`page_id` = `t1`.`page_id` )
WHERE `t1`.`page_id` = '320'
AND `t1`.`page_type` = '1'
AND `t1`.`is_active` != '0'
ORDER BY `t3`.`page_id` DESC
LIMIT 1
При активной посещаемости страницы, на диске во временной директории mysql, образовалось временных файлов размеров 42Гб...
В таблице `pages`:
Данные 71,332 Байт
Индекс 96,256 Байт
Всего 163.7 КБ
Строки 727
В таблице `page_text`:
Данные 3,718.0 КБ
Индекс 2,472.0 КБ
Всего 6,190.0 КБ
Строки 727
Беглый просмотр файла с временными данными показал, что в нем данные из `page_text`.
Видимо эту таблицу сервер MySQL из-за LEFT JOIN перелапачивает несколько раз.
Вот как запрос тогда оптимально переписать? Или вообще экономичнее будет три запроса отдельных делать?
-~{}~ 13.02.09 18:23:
Один такой запрос создает временный файл на диске размером ~600Мб О_о
Жесть...