русский
Germany.ruForen → Архив Досок→ Programmierung

Спецы ассемблера

09.04.23 11:46
Re: Спецы ассемблера
 
alex445 коренной житель
in Antwort 7495 09.04.23 09:01

Вопрос заключается в том, какие алгоритмы сортировки и поиска задействованы в SQL базах?

Я думаю, не на вашем уровне совершенствовать алгоритмы поиска в СУБД.


Допустим если писать на ассемблере, то я начну тупо перебирать строку за строкой, сравнивать,


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

Существующие алгоритмы сортировок и поиска по тексту примерно так и работают - по символам. Все очевидные вещи давно сделаны за вас и вылизаны до предела. Просто пользуйтесь тем, что есть, и всё. Если не удовлетворяет выборка из 80М строк в БД, значит что-то не то делаете. У меня есть таблица с сотнями миллионов строк, и по простым полям, типа чисел (тот же айди), выборка идёт долю секунды. А вот по полнотекстовым полям - да, там сложнее. И чем длиннее искомая строка, тем медленнее. Т.е. строка в 1-3 символа ищется ощутимо быстрее, чем в 4 и более. Но полнотекстовый поиск всегда был такой на больших объёмах данных. Тут либо большие текстовые поля разбивать на более мелкие, либо вводить дополнительный простой критерий сортировки для отсева.


Ну и ещё зависит, сколько данных запрашиваете и передаёте на клиента. Если запросить 10к лишь айдишников, то произойдёт быстро. А если по 40 полей к каждому, да ещё с кучей больших текстовых данных - будет долго передаваться и отображаться. Тут скорее долго отображаться будет. Я даже если тысячи полей запрашиваю, так что на каждую строку по, скажем, 10кБ приходится, это всё равно передаётся быстро. А вот рисуется в UI долго, если без виртуализации. Так что затык может быть в отрисовке, а не в запросе. Вы это проверяли?

 

Sprung zu