Правила     Закладки     Карма    Календарь    Журналы    Помощь    Поиск    PDA    Чат   
        СМС-ки
   
Пейджер выключен!
 
Фильтр авторов:    показать 
  скрыть
  Ответ в темуСоздание новой темыСоздание опроса

> Нужна помощ с подбором индекса
Serg86  
 ۩  Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Старик
***

Профиль
Группа: Пользователь
Сообщений: 104
Пользователь №: 42253
На форуме: 11 месяцев, 18 дней
Карма:




Запрос:
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 сек.
PMПисьмо на e-mail пользователю
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
kristall  
Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



418 I'm a teapot
******

Профиль
Журнал
Группа: Форумчанин
Завсегдатай форума
Сообщений: 647
Пользователь №: 28374
На форуме: 5 лет, 5 месяцев, 17 дней
Карма: 22




Попробуй поиграть с планом выполнения (EXPLAIN). Например, я не уверен, что тебе нужен составной индекс на три поля.


--------------------
echo '<pre>',print_r($var, 1);die;

root@server# make love && war
PMПисьмо на e-mail пользователюICQ
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
T1grOK  
Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Здесь живет
******

Профиль
Группа: Форумчанин
Завсегдатай форума
Сообщений: 2703
Пользователь №: 24406
На форуме: 6 лет, 1 месяц, 16 дней
Карма: 170




Структура индекса малоэффективна, покрыть запрос индексом врят ли удастся как ни крути. Если сортировки нельзя избежать, то лучше попробовать покрутить размеры буфера сортировки СУБД.
P.S. Данный индекс в помойку.


--------------------
Mysql, Postgresql, Redis, Memcached, Unit Testing, CI, Kohana, Yii, Phalcon, Zend Framework, Joomla, Open Cart, Ymaps, VK Api
PMПисьмо на e-mail пользователюСайт пользователя
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
ИНСИ  
Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



грех - смерть
******

Профиль
Группа: Форумчанин
Завсегдатай форума
Сообщений: 2488
Пользователь №: 18040
На форуме: 7 лет, 5 месяцев, 21 день
Карма: 77




Цитата
catfull like 'Zhivotnye-pticy-ryby-tovary-dlya-zhivotnyh%'

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

Цитата
ORDER by

Также надо добавить в индексы

Правила добавления индексов:
1. Сначала – поля, которые используются в запросе на точные значения.
2. Затем – сортируемые поля.
3. И в конце – поля, которые используются для поиска в диапазонах.
PMПисьмо на e-mail пользователю
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
  Быстрый ответ
Информация о Госте
Введите Ваше имя
Кнопки кодов
Для вставки цитаты, выделите нужный текст и
НАЖМИТЕ СЮДА
Введите сообщение
Смайлики
:huh:  :o  ;) 
:P  :D  :lol: 
B)  :rolleyes:  <_< 
:)  :angry:  :( 
:unsure:  :blink:  :ph34r: 
     
Показать всё

Опции сообщения  Включить смайлики?
 Включить подпись?
 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:

Опции темы Ответ в темуСоздание новой темыСоздание опроса