Sobes.tech
Middle
6

Расскажите про индексы и транзакции в базах данных.

Companies where asked
Разработка передовых технологий

Answer from AI

sobes.tech AI

Индексы в базах данных — это структуры данных, которые ускоряют поиск и выборку данных из таблиц. Они работают как указатели на строки таблицы, позволяя быстро находить записи без полного сканирования.

Типы индексов:

  • B-tree — самый распространённый, подходит для равенств и диапазонных запросов.
  • Bitmap — эффективен для столбцов с небольшим числом уникальных значений.

Пример создания индекса:

CREATE INDEX idx_users_email ON users(email);

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

Основные свойства транзакций (ACID):

  • Atomicity (Атомарность): все операции внутри транзакции выполняются полностью или не выполняются вовсе.
  • Consistency (Согласованность): транзакция переводит базу из одного корректного состояния в другое.
  • Isolation (Изоляция): параллельные транзакции не влияют друг на друга.
  • Durability (Надёжность): после фиксации транзакции изменения сохраняются даже при сбоях.

Пример использования транзакции:

BEGIN TRANSACTION;
UPDATE accounts SET balance = balance - 100 WHERE user_id = 1;
UPDATE accounts SET balance = balance + 100 WHERE user_id = 2;
COMMIT;

Если в процессе возникнет ошибка, можно выполнить ROLLBACK, чтобы отменить изменения.