C# Portal | Программирование
Сотрудничество, реклама: @devmangx
Работаем с @Spiral_Yuri
РКН: https://clck.ru/3FocB6
Статистика обновлена 15.11.2026 в 09:19 · 1 просмотр страницы · Хотите больше просмотров?
Динамика за 30 дней
Истории пока нет. График появится после следующих обновлений статистики.
Рекламные публикации
Последние публикации
Все посты канала →Время выполнения выросло с 16,5 мс до 241 мс. При этом индекс даже соответствовал сортировке, которую я указал в запросе. Почему стало медленнее?
В моих тестовых данных у пользователя
42 было 10 000 комментариев, и все они были опубликованы как минимум год назад. Индекс по дате сначала выводил новые комментарии всех остальных пользователей.В итоге Postgres пришлось пропустить 495 944 строки, прежде чем найти нужные десять.
Я изменил индекс на
(user_id, created_at DESC). Теперь комментарии пользователя 42 находятся рядом друг с другом и отсортированы от новых к старым.Postgres прочитал всего 10 записей и остановился. 0,067 мс
— новое время выполнения запроса.
Если бы я тестировал запрос только на пользователе, который публикует комментарии каждый день, то мог бы не заметить эту проблему.
Вот три плана выполнения запросов и тестовые данные, чтобы вы могли самостоятельно проверить результат: Разбор с примерами и планами запросов
👉 @KodBlog
Я размещаю его рядом с кодом, который создаёт заказ. Приложение поставляется как единое целое. Внутри него модуль Ticketing отвечает за корзины и заказы. Для оформления заказа я создаю отдельную папку
SubmitOrder. Добавление билета в корзину — другая задача, поэтому для неё будет своя папка.Для небольшой функциональности оформления заказа достаточно одного C#-файла. Открываете
SubmitOrder.cs и можете проследить весь путь запроса сверху вниз. Если ID корзины пустой, возвращается HTTP 400. Если ID корректный, обработчик ищет корзину и, если находит её, сохраняет заказ.Когда файл становится слишком большим, я выношу правило проверки ID корзины в
SubmitOrderValidator.cs — в ту же папку. Разработчик, который исправляет оформление заказа, сразу знает, где искать нужный код.В этом и заключается преимущество Vertical Slice Architecture. Папка показывает, какое действие может выполнить покупатель. При этом я могу разделить код на пять файлов, не теряя этой структуры.
Вот тот же код с двумя вариантами организации папок: подробнее
👉 @KodBlog