[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Нужна помощ с подбором индекса на платной основе
Страницы: 1, 2, 3, 4, 5, 6, 7
Serg86
Не могу никак сообразить что не так, готов заплатить за консультацию.
Суть проблемы:
Есть два типовых запроса:

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;

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%' AND urifull like 'Krasnoyarskii_krai%' ORDER by raised desc, date_add desc LIMIT 78360, 30;


Первая проблема в составном индексе, если задать индекс вида status+catfull+date_add используется только статус, почемуто составной индекс не работает, из него берется только первое значение. Пробывал подобрать разные варианты для первого и второго запросов. Во всех случаях судя по explain берется только первое значение составного индекса.

Вторая проблема в сартировке. Вышеуказаные запросы с выполняются примерно 1,5 - 2,5 секунды. Если их выполнить без сартировки то они выполнится примерно за 0,007 - 0,02 сек. Как мне кажется нужно какимто образом задействовать в индексе поля по которым происходит сартировка.

Потратил кучу времени уже, проблему не решил. При необходимости скину дамп таблицы. Размер таблицы около 300 000 строк, чуть больше.
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.