icon
Personal Website

Кодить каждую неделю 8 часов • 2026-02-08

Добрый вечер 🌙 Пришло время моего еженедельного дневника 📖

На этой неделе я перенёс мой персональный веб-сайт на другую базу данных. Было: SQLite, стало: PostgreSQL. На задачу ушло примерно 16 часов.

Сравнил скорость текстового поиска по моим блог-постам:

  • SQLite: 60 миллисекунд
  • PostgreSQL: 45 миллисекунд

Результат удивил. Я ожидал, что SQLite быстрее. Задумался, из-за чего такое могло получиться, и пришёл к выводу, что основная причина - пул подключений

  • Моя SQLite-версия программы открывала и закрывала подключение к базе при каждом HTTP-запросе от клиента
  • А вот в PostgreSQL-версии я изначально включил connection pooling через Go-библиотеку jackc/pgx/v5/pgxpool

Впрочем, глубже закапываться в эту тему я пока не буду. Достаточно того, что поиск быстро работает.

Поиск доступен на странице https://hinst.github.io/dynamic/#/personal-goals-s... Можно, к примеру, ввести слово Pascal, и найти все мои публичные посты с упоминанием Pascal. Время ответа на запрос там будет побольше, ибо TailScale добавляет лаг примерно 100 миллисекунд 🐌

Уже настроил еженедельные резервные копии базы через команду pg_dump, а все старые остатки интеграции с SQLite удалил. По моим подсчётам, для PostgreSQL должно хватить около 300 МБ оперативной памяти, а на моём микро-компьютере Orange Pi имеется 4 ГБ. Так что, памяти пока хватает с запасом.

Переставил мой компьютерный стол, чтобы было удобнее сидеть. На фото: было, стало. В старом варианте хуже всего было то, что локоть свисал со стола в воздухе без поддержки, и из-за этого после 8 часов работы у меня болела рука. А вот достоинство старого варианта было в том, что дневной свет был отгорожен от монитора. В новом варианте свет из окна мешает. На закате приходится прибавлять яркость, а после заката убавлять ☀️🫡