1.png

Это первая статья из серии «Вещи, которые вы должны знать». Например, сегодня мы обсуждаем базы данных!

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

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

2.png

Что такое индекс

Индексы — это структура данных, которая помогает уменьшить время поиска запрошенных данных. Индексы достигают этого за счет дополнительных затрат на хранение, память и поддержание их в актуальном состоянии (более медленная запись), что позволяет нам пропустить утомительную задачу проверки каждой строки таблицы.

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

Зачем нужны индексы?

Небольшие объемы данных поддаются управлению, но (подумайте о списке посещаемости для небольшого класса), когда они становятся больше (подумайте о реестре рождений для большого города), они становятся менее управляемыми. Все, что раньше было быстрым, становится медленнее, слишком медленным.

Подумайте, как изменилась бы ваша стратегия, если бы вам пришлось искать что-то на 1 странице, а не на тысяче страниц имен. Нет, серьезно, остановись на секунду и подумай.

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

Как индексы работают?