Показать сообщение отдельно
Старый 04.09.2015, 19:41   #5
h1dd3n
Бывалый
 
Аватар для h1dd3n
 
Регистрация: 19.06.2008
Сообщений: 679
Написано 264 полезных сообщений
(для 450 пользователей)
Ответ: [MySql] Оператор сравнения IN

Лол.

Временный индекс === hashset === dict...
Терминология "индексация" (основываюсь на общении с англо-говорящими разработчиками) - значит создать hashset, dict, object, назови-свой, любой метод создания ассоциативных массивов (хэш таблиц).
У тебя пукан взрывается лишь по причине что ты термин не уточнил?
Во-первых, это не я уточнять термин должен, а ты сразу употреблять термин правильно. Это русскоязычный форум и термины ты должен употреблять принятые в русскоязычном сообществе.
Во-вторых, очевидно предыдущий пост ты прочитать не можешь (видимо слишком сложно), где я написал какую конкретно структуру "строит" mysql, и почему на самом деле там никаких структур не строится, а входной массив просто сортируется и все. Если при этом удаляются повторяющиеся элементы, то тогда это уже не массив, а сет (т.к. в сете нет повторений по определению).
Dictionary, Hashset и отсортированный массив 3 разные структуры и нигде между ними нельзя поставить === (надеюсь это для тебя понять будет не слишком сложно).

В этой твой англоязычной терминологии индексация - создание ассоциативного массива (как ты сам сказал), но ни 1 база (в т.ч. mysql) для быстрого поиска по данным в IN ассоциативный массив не строит. Нужно объяснять почему ? А стоп, я же уже объяснил в пред. посте, только вот ты просто не прочитал (или намеренно дурачка строишь).

Следственно ты просто сморозил херню.
Сообщение от moka Посмотреть сообщение
Твое заключение говорит что ты нихера не читаешь что я пишу. Не будет 10 раз full_scan в хорошем случае. Потому что можно сделать временный индекс по массиву данных переданных в запросе (IN), и один full_scan с проверкой по временному индексу. И я третий раз повторюсь: это при хорошей реализации дб движка.

Когда индекс юзается, то бъет прямо по индексу, когда не юзается, может быть 10 full_scan'ов O(a*b), а может быть один с мелким индексом O(a + b).
Мда...
Прямо в тексте который ты процитировал написано в плохом случае будет 10 фулсканов, а ты дальше пишешь мне что в хорошем случае 10 фулсканов не будет, а где собственно я писал что в хорошем случае будет 10 фулсканов (конкретную цитату приведи)?.
Ты вроде же умного строишь из себя, а bit O notation в первый раз видишь?
Опять же во-первых ты показываешь недюженные скилы в уходе от ответа на вопрос, ведь я лишь спросил имел ли ты под O(a*b) и O(a+b) big o notation, а ты мне на вопрос ответил другим вопросом.

Во-вторых O(a*b) и O(a+b) это не big o notation и абсолютно никакого отношения к нему не имеет.
Далее чтобы наконец убедится в твоем полном непонимании big o notation, ответь на 3 вопроса:

Какова "сложность" алгоритма который пробегает весь объем данных 2 раза (всегда)?
Какова "сложность" алгоритма который пробегает весь объем данных 10 раз (всегда)?
Равны ли "сложности" этих алгоритмов и если нет, то какой "сложнее" ?
__________________
(Offline)
 
Ответить с цитированием