Size: a a a

2021 October 10

SM

Sergey Montashevich in MySQL
двоичный поиск возможен только на сортерованном массиве
источник

M

Max in MySQL
то есть по факту двоичный поиск в mysql не получится реализовать?
источник

SM

Sergey Montashevich in MySQL
получится, если заморочиться. вопрос только в том, зачем? зачем перебирать всю БД? иногда нужно наверное, но довольно не тривиальный кейс вроде как
источник

M

Max in MySQL
а если запись находится в самом конце, разве не будет перебор всей БД?
источник

SM

Sergey Montashevich in MySQL
как и говориться в вашей книге, алгоритм реализуем лишь в отсортированном массиве. тоисть если вы создали аккаунт Макс, и по логике ваш аккаунт стал в конец, откуда БД знать какую из половин взять чтоб найти аккаунт Макс? если б после создания сущности проходила сортировка по алфавиту, и переписывались бы значения ключей, тогда можно было бы. А вот когда поиск идёт по миллиарду айдишек, тогда наверное и используется)
источник

M

Max in MySQL
так при выборке записей можно отсортировать же, не?
источник

SM

Sergey Montashevich in MySQL
по какой выборке? если по выборке то получается что вы уже нашли нужную запись
источник

M

Max in MySQL
ORDER BY. Что значит нашел нужную запись? Я могу отсортировать данные из таблицы без условия
источник

SM

Sergey Montashevich in MySQL
вы хотите выгрызти всю таблицу данных, отсортировать их, и уже после этого искать по ним нужное значение? сколько эта опирация должна стоить?
источник

M

Max in MySQL
я не сказал, что хочу, я спросил есть ли инструменты, которые это делают, либо действительно люди реализуют бинарный поиск в СУБД. А что дороже, искать запись, которая находится в конце таблицы, либо сортировка + бинарный поиск записи?
источник

SM

Sergey Montashevich in MySQL
select вроде решает все за вас. думаю что под капотом когда идёт по индексам или айдишкам каким то поиск, она именно и использует бинарный поиск
источник

IZ

Ilia Zviagin in MySQL
Неатомарность
источник

M

Max in MySQL
ну вот я тоже нашел какой-то ответ на стеке, видимо индексы и юзают для большого количества записей
источник

YN

Yevhen Nedaskivskyi in MySQL
Нет. Это очень примитивный алгоритм, который имеет ряд недостатков. На его базе существует более продвинутые версии, такие как бинарное дерево и сбалансированное дерево. Последнее существует в  нескольких вариантах и именно на его базе построены кластеризированные и некластеризированные индексы, которые позволяют ускорить поиск в реляционка СУБД, одной из которых является MySQL
источник

YN

Yevhen Nedaskivskyi in MySQL
По каким атрибутам?
источник

M

Max in MySQL
во, круто. понял, спасибо
источник

IZ

Ilia Zviagin in MySQL
Ой все...
источник
2021 October 11

MN

My Name in MySQL
Такой вопрос
У нас есть таблица с разными колонками, имя фамилия и тд, как написать запрос чтобы вывело к примеру все колонки по указанному ид?

Мне нужно писать что-то вроде

SELECT * FROM userinfo WHERE userid = 1

Или как.
источник

MN

My Name in MySQL
Или нужно перечислить название каждой колонки также?
источник

MN

My Name in MySQL
Уже разобрался
источник