Помогите оптимизировать SELECT

MB
На сайте с 24.02.2009
Offline
179
460

задача такая, уже несколько дней копаюсь в core.trac.wordpress.org все запросы оптимизировал насколько это было возможно, остался только вот этот запрос:

SELECT SQL_NO_CACHE wp_posts.ID FROM wp_posts WHERE 1 =1 AND wp_posts.post_type = 'post' AND (wp_posts.post_status = 'publish')  ORDER BY wp_posts.post_date DESC LIMIT 150000 , 10

индексы по этой табличке

PRIMARY KEY (ID),

KEY post_name (post_name),

KEY type_status_date (post_type,post_status,post_date,ID)

он обрабатывается 3 секунды, EXPLAIN выдаёт

id select_type table type possible_keys key key_len ref rows Extra

1 SIMPLE wp_posts ref type_status_date_id type_status_date_id 37 const,const 153425 Using where; Using index

если изменить сортировку в составном индексе на

KEY type_status_date (post_type,post_status,ID,post_date)

то этот запрос начинает заметно шустрее выполняться

0,8 сек

но EXPLAIN выдаёт Using where; Using index; Using filesort

что нужно сделать чтоб, избавиться от файлсорта во втором случае и чтоб скорость выполнения осталась не более 1 секунды?

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

Попробуйте сделать KEY на дату - KEY post_date (post_date)

А чем Вас так Using filesort напрягает?

Подпись))
MB
На сайте с 24.02.2009
Offline
179
#2
Милованов Ю.С:
Попробуйте сделать KEY на дату - KEY post_date (post_date)

А чем Вас так Using filesort напрягает?

попробую, файлсорт в данном случае сортирует более 150к строк, процессор сервера это напрягает.

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

Сервер Ваш или арендуемый?

Если арендуемый - пофиг на то что он нагружается. Вы же платите за него деньги в конце концов.

Если Вы время таким образом снизите, то почему бы и не оставить?

Я понимаю, что в идеале от файлСорта надо избавиться, но я бы оставил, если бы все работало нормально:)

Funaki
На сайте с 13.09.2008
Offline
130
#4

чтобы использовался индекс, попробуйте сортировать по более полному индексу, т.е.

ORDER BY post_type,post_status,post_date 

на результате не скажется, но оптимизатор индекс должен подхватить

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