Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #71 (permalink)  
Старый 26.03.2015, 16:12
Аватар для Gozar
Отправить личное сообщение для Gozar Посмотреть профиль Найти все сообщения от Gozar
 
Регистрация: 07.06.2007
Сообщений: 7,504

пс. Кстати uniq по where тоже 38ms SBTREE, обновил табличку.
__________________
Последний раз редактировалось Gozar, Сегодня в 24:14.
Ответить с цитированием
  #72 (permalink)  
Старый 26.03.2015, 16:18
Аватар для kobezzza
Быдлокодер;)
Отправить личное сообщение для kobezzza Посмотреть профиль Найти все сообщения от kobezzza
 
Регистрация: 19.11.2010
Сообщений: 4,338

Цитата:
Т.к. по полю создан индекс, то where логично должно быть быстрее, ты же сам писал табличка и всё такое...
Конечно. Я просто хотел подчеркнуть, что полноекстовый индекс работает немного иначе, он не делает:

var index = {
  'someText': link,
  'more text': link
};


А анализирует сам текст и строит хитрый индекс. Полнотекстовый поиск нужен, когда мы ищем не точную строку, а фразу из строки.

***

Кстати ещё нюанс: когда делается запрос, то он использует только один индекс (думаю понятно почему), поэтому если есть частый запрос, в котором участвуют несколько полей, то лучше сделать составной индекс, т.е. индекс по нескольким полям, например, как бы это выглядело, если у нас есть индекс по age->skils->country

var index = {
  22: {
    '80lvl': {
        ru: [link1, link2, link3],
        en: [link1, link2]
    },

    '90lvl': ...
  }
}


Думаю логика ясна, обращаю внимание, что порядок параметров при запросе должен совпадать с порядком полей в составном индексе.

Логичный вопрос: как СУБД понимает, какой индекс использовать? Ну для начала она пытается найти индекс, который бы охватывал как можно больше полей в запросе, а если в итоге подошло несколько равнозначных индексов, то многие СУБД выполнят и тот и тот, соберут статистику и выберут того, кто работал быстрее (это очень упрощённое описание алгоритма )

+ Многие СУБД делают самостоятельно много оптимизаций, как балансирование, сортировка и т.д. как например в случае с твоими числами - это здорово, но полагаться на это нельзя.
__________________
kobezzza
code monkey
Ответить с цитированием
  #73 (permalink)  
Старый 26.03.2015, 16:19
Аватар для kobezzza
Быдлокодер;)
Отправить личное сообщение для kobezzza Посмотреть профиль Найти все сообщения от kobezzza
 
Регистрация: 19.11.2010
Сообщений: 4,338

Цитата:
Плюсы LUCENE:
Посмотри ElasticSearch, это надстройка над LUCENE, которая позволяет мега гибко настраивать индекс.
__________________
kobezzza
code monkey
Ответить с цитированием
  #74 (permalink)  
Старый 26.03.2015, 16:28
Аватар для Gozar
Отправить личное сообщение для Gozar Посмотреть профиль Найти все сообщения от Gozar
 
Регистрация: 07.06.2007
Сообщений: 7,504

Сообщение от kobezzza
Я просто хотел подчеркнуть, что полноекстовый индекс работает немного иначе, он не делает:
да, пожалуй fulltext здесь не канает, и пробелы тоже придется из ников убрать. Не круто.
__________________
Последний раз редактировалось Gozar, Сегодня в 24:14.
Ответить с цитированием
  #75 (permalink)  
Старый 26.03.2015, 16:31
Аватар для kobezzza
Быдлокодер;)
Отправить личное сообщение для kobezzza Посмотреть профиль Найти все сообщения от kobezzza
 
Регистрация: 19.11.2010
Сообщений: 4,338

Сообщение от Gozar Посмотреть сообщение
да, пожалуй fulltext здесь не канает, и пробелы тоже придется из ников убрать. Не круто.
Ну если тебе нужно просто вернуть по нику данные, то хватит простого вторичного индекса, а если ты делаешь, например, неточный поиск по нику (ну например по мере написания в input у нас показываются варианты, аля поисковая строка гугла), то только полнотекстовый.

У меня ща на работе стоит сплит MongoDB + Elastic, и если запрос типа Like, то он убегает в Elastic, а если запрос точный, то в Mongo.
__________________
kobezzza
code monkey
Ответить с цитированием
  #76 (permalink)  
Старый 26.03.2015, 16:35
Аватар для Gozar
Отправить личное сообщение для Gozar Посмотреть профиль Найти все сообщения от Gozar
 
Регистрация: 07.06.2007
Сообщений: 7,504

Может оно и не хорошо делать ники с пробелама. Хотя если запрашивать только при логинизации фигово, но жить можно. Но в урлах уже будет тяжело 280ms на 40 тыр. пользователей это уже жутковато. Вот и ответ почему в VK и FB только латиница.
__________________
Последний раз редактировалось Gozar, Сегодня в 24:14.
Ответить с цитированием
  #77 (permalink)  
Старый 26.03.2015, 16:36
Аватар для kobezzza
Быдлокодер;)
Отправить личное сообщение для kobezzza Посмотреть профиль Найти все сообщения от kobezzza
 
Регистрация: 19.11.2010
Сообщений: 4,338

Сообщение от Gozar Посмотреть сообщение
Может оно и не хорошо делать ники с пробелама. Хотя если запрашивать только при логинизации, то фигово, но жить можно. Но в урлах уже будет тяжело 280ms на 40 тыр. пользователей это уже жутковато.
Не понял, а в чём проблема с пробелами? Ну кроме того, что в адресной строке будет Vasya+Pupkin. Хотя обычно вместо пробела используется _
__________________
kobezzza
code monkey
Ответить с цитированием
  #78 (permalink)  
Старый 26.03.2015, 16:39
Аватар для Gozar
Отправить личное сообщение для Gozar Посмотреть профиль Найти все сообщения от Gozar
 
Регистрация: 07.06.2007
Сообщений: 7,504

Сообщение от kobezzza
а в чём проблема с пробелами?
скорость запроса падает с 38ms до 280ms, не смущает?
__________________
Последний раз редактировалось Gozar, Сегодня в 24:14.
Ответить с цитированием
  #79 (permalink)  
Старый 26.03.2015, 16:40
Аватар для kobezzza
Быдлокодер;)
Отправить личное сообщение для kobezzza Посмотреть профиль Найти все сообщения от kobezzza
 
Регистрация: 19.11.2010
Сообщений: 4,338

Сообщение от Gozar Посмотреть сообщение
скорость запроса падает с 38ms до 280ms, не смущает?
Значит ошибся при проектировании индекса просто, у тебя какой тип индекса стоит на нике? Поставь Hash.
__________________
kobezzza
code monkey
Ответить с цитированием
  #80 (permalink)  
Старый 26.03.2015, 16:41
Аватар для Gozar
Отправить личное сообщение для Gozar Посмотреть профиль Найти все сообщения от Gozar
 
Регистрация: 07.06.2007
Сообщений: 7,504

FULLTEXT SBTREE
__________________
Последний раз редактировалось Gozar, Сегодня в 24:14.
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск