нуля
Неправда, он восстанавливает только те операции, которые помечены завершенными, но не попали на диск. А это сильно меньше, чем если строить индекс с нуля и равносильно предложенному вами построению индекса по части строк.
>а при построении индекса с унля, вы можете мгновенно работать с данными
Нет, не можете. Потому что пока вы строите индекс, данные должны быть недоступны для изменения. Например, вам потрут часть ключей, по которым вы строите. Придется начинать с начала?
>ну банально сколько баз данных делает именно индексы в жестком диске, а сколько использует только в памяти
Я вообще нигде не видел индексы только в памяти, но я работаю только с основными РСУБД. Может где-то в какой-то экзотике этот подход и используется
Мне нравится, куда идет дисскуссия, спасибо за развернутые ответы 😊 > Неправда, он восстанавливает только те операции, которые помечены завершенными Есть разные реализации Wal, с опорными точками, без опроных точек и т.д. и тому подобное. Но во всех их идет проверка соответствия данных в wal и в физических данных, или от начала или от опорной точки, так что не только последние незаконченые транзакции, увы 🙂 > Нет, не можете. Потому что пока вы строите индекс, данные должны быть недоступны для изменения. Весь смысл индекса в памяти в том, что при изменении данных, физически вы меняете индекс в памяти, т.е. параллельно с построением например Btree вы просто изменяете уже существующие узлы, или изменяются узлы, которых еще в btree нет, и тогда не важно, потому что впринципе такой механизм работы с индексами полностью в памяти будет, что часть данных в индексе, а часть нужно фулсканом выбирать. Поэтому никаких блокировок на запись и считывание данных не будет в таком случае 😉 > я работаю только с основными РСУБД С какими? мускул и постгрес? И как там индексы себя ведут, по wal перестраиваются?
Обсуждают сегодня