Middle
7
Расскажите про индексы и транзакции в базах данных.
Компании, где спрашивали
Разработка передовых технологий
Ответ от нейросети
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, чтобы отменить изменения.