TGViewer
WebDev+ | Веб-разработка WebDev+ | Веб-разработка @webdev_plus · 7.93K subscribers
Post #862 1.17K
Indexing

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

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

Существуют разные виды индексов. Индекс может быть по одному столбцу или составным по нескольким. Уникальный индекс гарантирует отсутствие дубликатов, а полнотекстовый индекс используется для быстрого поиска по текстам.

Главное преимущество индексов — заметное ускорение запросов, сортировок и фильтрации. Минусы заключаются в том, что индексы занимают дополнительное место и замедляют операции записи, такие как вставка, обновление и удаление.

Joins

Join это способ объединить строки из разных таблиц по связанному полю.

INNER JOIN возвращает только совпадающие строки, LEFT JOIN оставляет все строки из левой таблицы и добавляет совпадения из правой, RIGHT JOIN делает то же самое, но наоборот, FULL OUTER JOIN объединяет всё при наличии совпадений, а CROSS JOIN выдаёт декартово произведение.

Пример запроса:

SELECT users.name, orders.order_date
FROM users
INNER JOIN orders ON users.id = orders.user_id;


Transactions

Транзакция это набор операций, который выполняется как единое целое. Если один шаг не проходит, база данных откатывает всё назад, сохраняя целостность.

Классические свойства транзакций известны как ACID. Atomicity означает «всё или ничего». Consistency гарантирует, что база остаётся в валидном состоянии. Isolation даёт уверенность, что параллельные транзакции не мешают друг другу. Durability гарантирует, что закоммиченные изменения сохраняются навсегда.

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

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


В реальных системах индексы ускоряют поиск товаров по названию в интернет-магазине. Join позволяет объединить клиентов с их заказами в одной выборке. Транзакции обеспечивают корректность при переводе денег между счетами.

@WebDev_Plus
More from @webdev_plus
  1. Oct 12, 2026Оптимизация SVG, краткий гайд для начинающих Часто на сайтах встречаются SVG-изображения,…
  2. Oct 12, 2026Эта библиотека позволяет запускать полноценные 3D-физические симуляции прямо в браузере. J…
  3. Oct 11, 2026Свойство shape-outside Определяет форму, вокруг которой должно обтекаться соседнее встроен…
  4. Oct 11, 2026Быстрый совет по JS: используйте Gamepad API, чтобы в реальном времени отслеживать статус…
  5. Oct 10, 2026Chrome DevTools – это не только панель для отладки, но и полноценная среда для проектирова…
  6. Oct 10, 2026Обрати внимание, что в корректном примере чипы мгновенно перемещаются на новую позицию, ко…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →