Помогите оптимизировать запрос к базе, а то сервер падает

pashin

Новичок
Помогите оптимизировать запрос к базе, а то сервер падает

Пример зпроса:
PHP:
select id, firm, DATE_FORMAT(date, '%d.%m.%y'), title, reg_id from tbl_prod order by date desc limit 19980, 30
Сервер периодически выдает ошибку:
PHP:
Server shutdown in progress
По полю "DATE" создан индекс.
Записей в таблице около 30000.
Примерно 1500 запросов в сутки.

Может из-за "DATE_FORMAT" сервак падает?

Всем за ранее спасибо.
 

themylogin

Новичок
Может из-за "DATE_FORMAT" сервак падает?
обязательно
Записей в таблице около 30000.
Примерно 1500 запросов в сутки.
это копейки
Server shutdown in progress
ты хоть пытался перевести эту фразу?
Проблема в этом (см. последний выпуск пхпинсайд)
 

pashin

Новичок
Автор оригинала: themylogin
обязательно
это копейки
ты хоть пытался перевести эту фразу?
Проблема в этом (см. последний выпуск пхпинсайд)
Спасибо за совет, про phpinside раньше даже не слышал.
 

berkut

Новичок
давно столкнулся с проблемой "лимит" при взятии из глубин:) Тормозит страшно без order by, т.к. всегда делает полный скан таблицы
самый быстрый и правильный способ, при наличии primary key, большой "глубины" лимит и order by id:
Код:
SELECT col FROM huge_table WHERE id IN (SELECT id FROM huge_table LIMIT xxxx, xx)
 

pashin

Новичок
Автор оригинала: berkut
самый быстрый и правильный способ, при наличии primary key, большой "глубины" лимит и order by id:
Код:
SELECT col FROM huge_table WHERE id IN (SELECT id FROM huge_table LIMIT xxxx, xx)
MySQL поддерживает вложенные запросы или я чего-то не понимаю???
 

pashin

Новичок
Автор оригинала: berkut
поддерживает с версии 4.1
да идет время...

еще есть вопрос:
решил избавиться от DATE_FORMAT в запросе и форматировать дату методами РНР,
но ф-я strftime не хочет воспринимть информацию полученную из базы, т.е. strftime("%d.%m.%y",'2006-12-01 12:10:45') не равно 01.12.06.
Как сделать проще?
В голову приходят только регулярные выражения или создание в базе дополнительного столбца, может есть что по проще?
 

Vallar_ultra

Любитель выпить :)
pashin
string strftime ( string format [, int timestamp] )

Ты зачем ей строку вторым параметром подпихиваешь????

надо:
strftime("%d.%m.%y",strtotime('2006-12-01 12:10:45'))
 

Апельсин

Оранжевое создание
pashin, сервер не должен падать из-за DATE_FORMAT(). Если он падает - это бага.
Проверьте на последней версии, была когда-то бага когда сервер падал при использовании функции DATE_FORMAT(). Возможно это он. Если у вас и на последней версии падает сервер, то создайте баг репорт.
 
Сверху