SELECT d.id, d.ip, d.p, d.uid, d.cat, d.region, d.date_add, d.user_id, d.status, d.email, d.user, d.title, d.text, d.f_94 images, d.active, d.counter, d.date_del, d.nosend, d.subdomain ,(SELECT count(1)
FROM site_comments WHERE message_id = d.id) comments_count FROM site_db as d WHERE status = 1 AND catfull like 'Zhivotnye-pticy-ryby-tovary-dlya-zhivotnyh%' ORDER by raised desc, date_add desc LIMIT 78360, 30
где ststus - int1
catfull - varchar
date_add - int11
ALTER TABLE `dbname`.`site_db` ADD INDEX `status_catfull_urifull` (`status`, `catfull`, `date_add`) USING BTREE;
Первая проблема в составном индексе, если задать индекс вида status+catfull+date_add используется только статус, почемуто составной индекс не работает, из него берется только первое значение.
Вторая проблема в сартировке. Вышеуказаный запрос с выполняется примерно 1,5 - 2,5 секунды. Если его выполнить без сартировки то он выполнится примерно за 0,007 сек.