172 похожих чатов

Все привет, у меня такой новичковый вопрос, когда вы создаете

индекс, вы представляете себе дерево данных и как будет проходить поиск или вы знаете какие либо правила по которым его создаете? Просто не совсем понятно, нужно ли мне в деталях понимать как дерево работает, я в общих чертах понял, но в голове картина не рисуется как будет происходить поиск когда создаю индексы в бд в каких то моих реальных кейсах, поэтому и задаю вам вопрос)

32 ответов

16 просмотров

в пж несколько типов индексов, а также есть процент заполнения индекса, в зависимости от того, насколько у вас часто изменения в записях.

Да, представляю.

DispooL- Автор вопроса
Ilya Anfimov
Да, представляю.

Как выработать такое представление в голове? Нужно ли разработчику оно, не специалисту по бд?

DispooL
Как выработать такое представление в голове? Нужно...

Попробовать порешать задачки по теории: графы, деревья, поиск, сортировка, поиск в дереве. Со скоростью выполнения.

Ilya Anfimov
Попробовать порешать задачки по теории: графы, дер...

Привет! Хочу присоединиться к обсуждению Можешь посоветовать интересные сайты с такими задачками ?

Посмотрите тут https://habr.com/ru/company/postgrespro/blog/441962/

DispooL
Как выработать такое представление в голове? Нужно...

хотел бы отметить. Вот приходит пыхер в штат, в 9 (опаздал конечно на пол часа). Сел. Через 5 минут подходит менджер и говорит. Дорогой друг. Ты попал в майнкрафт. Твори что хочешь, хочешь настрой сервер, чтобы его не ломали и он не тормозил, хочешь настрой нам фронт, а то плывёт дизайн, на всех браузерах по разному, хочешь программируй, хочешь займись базой данных. Ты тут один, денег нет на аутсорс, всё равно это всё надо делать тебе, так что ни в чём не отказывай. Скажи только одно, почему ты уже 5 минут у нас работаешь и не пишешь функционал, который нам был нужен внезапно и вчера? Вывод? Все работы разные. Для обычного кодера (вот как я) мне кажется проще проверить на реальном коде и не верить никому. Надо или глубоко разбираться в базах данных или уж не парить себе мозг и заниматься своей работой. Ну вот что должен делать кодер, чтобы заранее понять какая область видимости будет у индекса и насколько его прореженным надо создать? Да проще потом проверить по факту.

DispooL- Автор вопроса
ks
хотел бы отметить. Вот приходит пыхер в штат, в 9 ...

Я как раз с php работаю, тоже этого мнения, но вот закралась мысль, а в друг не так и я все не правильно делаю, может стоит стать более знающим разработчиком с широким кругом знаний, поэтому решил пока забить себе голову индексами, сижу деревья строю и пока ничего не понимаю, не знаю насколько это поможет, но раз люди говорят, что это нужно, то думаю не зря потрачу время

ks
хотел бы отметить. Вот приходит пыхер в штат, в 9 ...

Дело в том что обычный кодер больше условных 100К РУР получать не может в принципе. Он - инструмент. И бизнесу он не нужен. Бизнесу нужен тот кто умеет решить проблемы. А для того чтобы уметь решать проблемы ты должен знать инструменты, с помощью которых ты будешь решать эти проблемы. И или ты знаешь как работает процессор, машина в принципе, ОС, СУБД, сетевой стек и как это все связать вместе чтобы решить проблемы бизнеса - или нет. Если ты это знаешь, поздравляю, ты - программист. А если еще и успешно решал проблемы бизнеса и умеешь с ним общаться, поздравляю - ты архитектор.

DispooL
Я как раз с php работаю, тоже этого мнения, но вот...

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

ks
мда уж, люди тут в чате что только не говорят. Одн...

Как по мне - базовика не существует. Ну не сможешь ты эффективно решать проблемы в отрыве от того как работает база. Поэтому программист должен быть DBD'ашником. А вот задачи DBA'шника (как то резервное копирование, мониторинг, защита от сбоев и т.д., то есть обеспечение нормальной работы сервиса) может делать DBA'шник или админ. Да, получается что условный админ помогает программисту, но горе тому кто будет считать что DBA это "на ступеньку ниже"(а то знаю я таких). DBA - это твой друг, товарищ и вообще - любимая жена / муж в рамках работы ))

Warstone
Как по мне - базовика не существует. Ну не сможешь...

уверен, что вы не правы. Базовик тот же кодер, только шибко упирается в свою базу данных. Но есть ли у вас вопрос?

ks
уверен, что вы не правы. Базовик тот же кодер, тол...

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

ks
уверен, что вы не правы. Базовик тот же кодер, тол...

Окей... А зачем он нужен, если я и так и индексы построю и хранимку напишу и оконку где надо нарисую и базу спроектирую.

Владимир
ошибки проектирования в бд исправляются гораздо тя...

потому что базовики в чате отказываются на себя работу брать по написанию вьюсов. Если бы соглашались, то исправлялись бы намного легче. А вот если базовик больше в чате мастерится, тогда да. Кодера в базу только пусти, мы вам сразу кей валуе хранилище сделаем.

ks
потому что базовики в чате отказываются на себя ра...

вот сейчас какой то набор слов, то ли я тупой.

ks
потому что базовики в чате отказываются на себя ра...

В чате кодеров мало. Тут DBD/DBA и программист с архитекторами в основном.

Warstone
Окей... А зачем он нужен, если я и так и индексы п...

вы, например, не знаете отличий в индексах. Я вам дам пример 3 таблиц и вы не скажете какой индекс там будет лучше. Индекс сделаете, но производительность его будет неизвестна.

ks
вы, например, не знаете отличий в индексах. Я вам ...

без привязки к реальной задаче - это сферический конь в вакууме.

ks
вы, например, не знаете отличий в индексах. Я вам ...

Я, например, знаю. Так как я умею читать документацию, а BTREE и GIN индексы я писал вне Пг. Вы меня не поняли. Если вы не знаете теории СУБД вы не программист. Вы кодер.

Владимир
вот сейчас какой то набор слов, то ли я тупой.

ну вот какие могут быть ошбки в базе, если всё кодеры получают через вьюсы? И сидите вы целми днями, оптимизируйте свои данные, меняя вьюсы, кодеры ваши оптимизации "базовика" будут видеть только по первой линии, что жалоб меньше на производительность будет.

Warstone
Я, например, знаю. Так как я умею читать документа...

ааа, это спор кто такие кодеры и программисты. Тогда да, я принципиально себя всегда называю кодером в "профессиональных" кругах. Вне зависимости от своих и знаний оппонентов.

Warstone
Я, например, знаю. Так как я умею читать документа...

Подожди,а как использовать субд, не зная теории. Или как говорил мой знакомый, зачем нужны бд, когда можно взять текстовый файл и хранить всё там

Warstone
Я, например, знаю. Так как я умею читать документа...

А так частично соглашусь, но не англицизмом, а по-русски: печатная машинка. Ибо кодит по заданному другими алгоритму и больше ничего не делает

Даниил Агниашвили
Подожди,а как использовать субд, не зная теории. И...

Ну вон ks знает зачем ему СУБД без теории. Ему Вьюху выдали, он умеет в нее CRUD. Если нужны какие-то другие данные, он пойдет к DBA и тот выдадит ему другую вьюху. Она будет отличаться 1-2мя полями, но зато кодер при деле, таска в джире стоит. лид/архитектор завизировал, DBD работает, ситема працуе... 3 человека минимум, а вообще 4, так как на 3х нужен ПМ. Чувствуете?... А не просто пошел и SQL запрос подправил в ORM'е или вообще в коде.

Ну вы вопрос-то задайте.

ks
хотел бы отметить. Вот приходит пыхер в штат, в 9 ...

Пыхер? В 9? Да это на два с половиной часа раньшэ положэнного¡

Ilya Anfimov
Пыхер? В 9? Да это на два с половиной часа раньшэ ...

не, ну первый день же. Все же хотят начать новую жизнь с первого дня! зы по утрам многие жалуются, мол сегодня холодно, так замёрз. А я никогда по утрам не мёрзну, так как я понял, что я каждый день опаздываю, хотя уже бегом бегу нафиг.

ks
не, ну первый день же. Все же хотят начать новую ж...

Вспоминаю, как лет 8 назад вышел на первый рабочий день в одну контору, пришёл прямо к 8-50 (рабочий день в 9 начинался у них), стою на улице, всё закрыто - замёрз. Пришёл начальник почти в 10 - и такой "Ты чего так рано припёрся? Я же сказал примерно в 9!"

DispooL
Я как раз с php работаю, тоже этого мнения, но вот...

Модэльная задача: есть сто миллионов пар число — слово. Числа 64-битные. Найти слово, соответствующее числу или сказать, что его нет. Вот тут можно померить, что будет если хранить просто массив чисел с указателями на слова. Что будет если хранить отсортированный массив с указателями на слова (и сколько потом займёт добпвление ещё нескольких значений по одному). Что будет, если хранить указатели по одноуровневому хэшу. Что будет, если из пар (число, указатель) сделать бинарное дерево (т.е. элемент или последний в иерархии или у него есть указатели — на кучу тех, кто меньшэ и кто большэ). Дерево сначала создать из массива, отсортированного, начиная с середины. Написать добавление в такое дерево по одному. Попробовать сделать такое дерево из отсортировагного массива с начала, а не с середины. Посмотреть, сколько займёт поиск в такой структуре.

Похожие вопросы

Обсуждают сегодня

Господа, а что сейчас вообще с рынком труда на делфи происходит? Какова ситуация?
Rꙮman Yankꙮvsky
29
30500 за редактор? )
Владимир
47
а через ESC-код ?
Alexey Kulakov
29
Чёт не понял, я ж правильной функцией воспользовался чтобы вывести отладочную информацию? но что-то она не ловится
notme
18
Добрый день! Скажите пожалуйста, а какие программы вы бы рекомендовали написать для того, чтобы научиться управлять памятью? Можно написать динамический массив, можно связный ...
Филипп
7
У меня есть функция где происходит это: write_bit(buffer, 1); write_bit(buffer, 0); write_bit(buffer, 1); write_bit(buffer, 1); write_bit(buffer, 1); w...
~
14
Недавно Google Project Zero нашёл багу в SQLite с помощью LLM, о чём достаточно было шумно в определённых интернетах, которые сопровождались рассказами, что скоро всех "ибешни...
Alex Sherbakov
5
Ребят в СИ можно реализовать ООП?
Николай
33
https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_h_common.erl#L174 https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_olp.erl#L76 15 лет назад...
Maksim Lapshin
20
Всем привет! Имеется функция: function IsValidChar(ch: UTF8Char): Boolean; var i: Integer; ValidChars: AnsiString; begin ValidChars := 'abcdefghijklmnopqrstuvwxyzABCDE...
Евгений
44
Карта сайта