Правила     Закладки     Карма    Календарь    Журналы    Помощь    Поиск    PDA    Чат   
        СМС-ки
   
Пейджер выключен!
Страницы: (7) [1] 2 3 ... Последняя » ( Перейти к первому непрочитанному сообщению )  
Фильтр авторов:    показать 
  скрыть
  Ответ в темуСоздание новой темыСоздание опроса

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

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



Старик
***

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




Не могу никак сообразить что не так, готов заплатить за консультацию.
Суть проблемы:
Есть два типовых запроса:

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

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



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

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




Я же вроде тебе уже ответил в другой теме
PMПисьмо на e-mail пользователю
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
Serg86  
 ۩  Дата
Цитировать сообщение

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



Старик
***

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




Цитата
Я же вроде тебе уже ответил в другой теме

Поэкспериментировал, не получается
PMПисьмо на e-mail пользователю
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
ИНСИ  
Дата
Цитировать сообщение

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



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

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




Цитата
Поэкспериментировал, не получается

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

Создай отдельную таблицу, используй полнотекстовой поиск
PMПисьмо на e-mail пользователю
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
Serg86  
 ۩  Дата
Цитировать сообщение

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



Старик
***

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




Цитата
Поэкспериментировал, не получается
Что именно не получается? Ты используешь литерал в шаблоне поиска, что заведомо не будет использовать индексы, которые ты указал.
Создай отдельную таблицу, используй полнотекстовой поиск

Мое предложение еще в силе, могу скинуть дамп.
PMПисьмо на e-mail пользователю
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
Zzepish  
Дата
Цитировать сообщение

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



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

Профиль
Группа: ★ЛжеЭксперт★
Завсегдатай форума
Сообщений: 5583
Пользователь №: 32538
На форуме: 4 года, 10 месяцев, 1 день
Карма: 56




Serg86
Лучше использовать fulltext, чем LIKE, имхо
PMПисьмо на e-mail пользователю
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
Serg86  
 ۩  Дата
Цитировать сообщение

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



Старик
***

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




Цитата
Создай отдельную таблицу, используй полнотекстовой поиск

Сравнил первый запрос без сартировки как есть и по MATCH AGAINST. Если искать по MATCH AGAINST то скорость выборки сильно возрастает, по like 'text%' около 0,005 секунд, по MATCH (catfull) AGAINST ('text') больше 2 секунд.

Проблема в сартировке а не в выборке.
PMПисьмо на e-mail пользователю
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
Zzepish  
Дата
Цитировать сообщение

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



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

Профиль
Группа: ★ЛжеЭксперт★
Завсегдатай форума
Сообщений: 5583
Пользователь №: 32538
На форуме: 4 года, 10 месяцев, 1 день
Карма: 56




Serg86
попробуй кешировать готовые данные в отдельную таблицу. Т.е. уже отсортированные данные
PMПисьмо на e-mail пользователю
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
Serg86  
 ۩  Дата
Цитировать сообщение

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



Старик
***

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




Цитата
попробуй кешировать готовые данные в отдельную таблицу. Т.е. уже отсортированные данные

Это только костыль, данные часто меняются
PMПисьмо на e-mail пользователю
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
Zzepish  
Дата
Цитировать сообщение

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



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

Профиль
Группа: ★ЛжеЭксперт★
Завсегдатай форума
Сообщений: 5583
Пользователь №: 32538
На форуме: 4 года, 10 месяцев, 1 день
Карма: 56




Serg86
а если переложить сортировку на php?
PMПисьмо на e-mail пользователю
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
Zzepish  
Дата
Цитировать сообщение

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



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

Профиль
Группа: ★ЛжеЭксперт★
Завсегдатай форума
Сообщений: 5583
Пользователь №: 32538
На форуме: 4 года, 10 месяцев, 1 день
Карма: 56




ради интереса - скинь дамп базы. ПОэксперементирую
PMПисьмо на e-mail пользователю
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
Serg86  
 ۩  Дата
Цитировать сообщение

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



Старик
***

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




Цитата
а если переложить сортировку на php?

Думаю что таскать из мускула массив из 100 000 строк, сартировать его и брать из него первых 30 записей не самое удачное решение проблемы.
PMПисьмо на e-mail пользователю
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
Serg86  
 ۩  Дата
Цитировать сообщение

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



Старик
***

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




Цитата
ради интереса - скинь дамп базы. ПОэксперементирую

кинь почту в личку
PMПисьмо на e-mail пользователю
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
Serg86  
 ۩  Дата
Цитировать сообщение

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



Старик
***

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




Цитата
ради интереса - скинь дамп базы. ПОэксперементирую

отправил
PMПисьмо на e-mail пользователю
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
ИНСИ  
Дата
Цитировать сообщение

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



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

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




Цитата
Это только костыль, данные часто меняются

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

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

Опции темыСтраницы: (7) [1] 2 3 ... Последняя » Ответ в темуСоздание новой темыСоздание опроса