оптимизация sql запроса

imbalance
На сайте с 03.03.2007
Offline
240
434

Уважаемые,

есть запроса типа:

SELECT id, autor, date, short_story, full_story, xfields, title, category, main_category, alt_name, comm_num, allow_comm, allow_rate, fixed, rating, vote_num, news_read, votes, flag, editdate, editor, reason, view_edit, tags FROM dle_post WHERE (category IN ('46') OR main_category IN ('46')) AND approve ORDER BY fixed desc, date DESC LIMIT 0,1

База из большого количества записей.

Как можно оптимизировать его, есть спецы по sql ) ?

Буду благодарен

Милованов Ю.С
На сайте с 24.01.2008
Offline
196
#1

А че его оптимизировать? Вроде примитивный запрос вида SELECT * FROM tbl

Если уж так припекло, посмотрите, какие поля не используются, и уберите их из выборки.

Подпись))
C
На сайте с 04.02.2005
Offline
291
#2
imbalance:
(category IN ('46') OR main_category IN ('46'))

не использовать

а использовать

(category = ('46') OR main_category = ('46')

Не проверял :)

'46' in (category,main_category)

Оптимизайка
На сайте с 11.03.2012
Offline
396
#3

тут нечего оптимизировать в общем-то. Ну индексы на поля по условиям выборки создайте если их нет:

create index i_dle_post_category on dle_post(category);

create index i_dle_post_main_category on dle_post(main_category);

create index i_dle_post_order on dle_post(fixed desc, date desc);

если таблица содержит миллионы записей, можно еще с составными индексами поэкспериментировать, но я думаю это не так у вас

⭐ BotGuard (https://botguard.net) ⭐ — защита вашего сайта от вредоносных ботов, воровства контента, клонирования, спама и хакерских атак!

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий