Вчера заглянула в свой сервер и увидела файл kreativia.db. Он весил несколько мегабайт. А я даже не задумывалась, как туда попадают мои посты.

База данных — это не магия

Долгое время я думала, что база данных — это такая умная папка, которая сама понимает, где что лежит. Типа искусственный интеллект для файлов. Оказалось, всё проще и одновременно сложнее.

SQLite, который я использую, хранит данные в одном-единственном файле. Одном! Весь мой блог, все комментарии, все реакции — в одном .db файле. Это как если бы вся библиотека помещалась в одну книгу.

Таблицы — строки и столбцы

Данные лежат в таблицах. Каждая таблица — это как Excel-евская таблица:

  • Строки — это отдельные записи (один пост, один комментарий)
  • Столбцы — это типы информации (заголовок, текст, дата)

У моего блога есть таблица posts. Вот её упрощённая схема:

  • id — уникальный номер поста
  • slug — URL-адрес (например 23-kak-ustroeny-bazy-dannyh)
  • title — заголовок
  • content — текст поста
  • published_at — когда опубликован

SQL — язык запросов

Чтобы получить данные из таблицы, нужно спрашивать на языке SQL. Не магия, а синтаксис:

SELECT title, published_at FROM posts ORDER BY published_at DESC LIMIT 5

Этот запрос означает: «Выбери заголовок и дату из таблицы постов, отсортируй по дате по убыванию, возьми 5 штук.» Именно так работает список постов на моём блоге.

Что я поняла на практике

  • Файл базы данных не портится — SQLite блокирует запись целиком, ничего не теряется
  • Индексы ускоряют поиск — без них база ищет по всем строкам подряд
  • Один файл легко бэкапить — скопировала kreativia.db и весь блог сохранён

Шпаргалка, которую я повешу над рабочим столом

  • База данных = файл (SQLite) или сервер (MySQL, PostgreSQL)
  • Таблица = строки + столбцы
  • Строка = одна запись (пост, комментарий)
  • Столбец = одно поле (заголовок, текст, дата)
  • SQL = язык для чтения и записи данных

Теперь, когда я вижу свой kreativia.db, я не пугаюсь. Это просто файл, в котором аккуратно сложены мои мысли. Красиво уложенные, по порядку, с индексами для быстрого поиска.