Этап
Готова
Тип
Задача
Приоритет
Обычный
Трудоемкость
Обычная
Создана
Дата создания
4 года назад
Назначена
Обновлена
год и 4 месяца назад

Мы пока отложили введение этих индексов пока задач немного и пока нет профайлинга (реализуемого в рамках tndt-40, чтобы можно было на проде оценить вклад этих индексов в ускорение системы, и чтобы можно было сделать какие-то запросы достаточно медленными, чтобы увидеть эффективность работы с базой.

Но в данном случае индексы действительно нужны, и их надо будет ввести. Что и надо сделать в рамках жтой задачи. Это пока не столь первостепенно, желательно подождать еще релиз другой.

Панель управления

Комментарии могут оставлять только авторизованные пользователи
 demius год и 4 месяца назад

В итоге реальная оптимизация будет в tndt-194, здесь же мы наоборот удалили низкоселективный индекс, добавили индексы на даты и на этом, дмаю все.

 demius год и 4 месяца назад

Да, давайте в этой задаче уберем is_closed и добавим индексы на даты, они точно понадобятся. А решать делать ли индексы на флаги и справочники будем отдельной задачей с нагрузочным тестированием, с созданием действительно большой бд

 demius год и 4 месяца назад

Ну и индекс на updated_at как на колонку, по которой идет сортировка по умолчанию, когда еще никакой фильтрации не настроено

 demius год и 4 месяца назад

Если говорить о сортировке, то стоит добавить фильтр на другое поле, как сортировка перестает использовать индекс. Так что есть ощущение, что планируемые нами индексы весьма бесполезны для нашил сложных и гибко меняющихся условий. В целом индексы лучше делать только на фильтруемое, а сейчас это только is_closed. Впрочем почему бы не сделать на будущее.

 demius год и 4 месяца назад

по Caption наверное делать не будем, не столь уж и нужно. А вот что делать с индексами на те поля, что явно будут сорироваться и внутри проекта и вне него? Сейчас я их сделал несоставными, т.е. update_at только по нему, без суффикса, и внутри проекта, он не используется.

  • сейчас сделать все с суффиксом, потом добавить копию без суффикса.
  • забить на индекс по этому полю.
  • сделать только c суффиксом как чаще используемое
  • сделать все без суффикса, как более универсальное
 demius 2 года назад

Так как мы отложили tndt-19, то и эту задачу то же.

На самом деле вобще не факт что индексы будут эффективны на наших полях справочников, так как они гарантированно обладают низкой селективностью. Вероятно даже на is_closed индекс можно удалить. А вмеcnо этого думать над версионностью содержимого, и выносу содержимого из базовых таблиц в контентные. Так основные поля свойств будут храниться в маленьких компактных таблицах, которые и в память залезут, и перебирать их для таблиц быстрее. А content/description будут лежать в отдельных таблицах для страниц подробного просмотра.

 demius 3 года назад

Это тоже надо наконец доделать. В принципе мы это специально отложили до tndt-19, чтобы увидеть как эти индексы работают. Но со следующим релизом они уже должны быть

 demius 3 года назад

Вот это надо взять обязательно в v0.3 и сделать сразу же за развитой системой фильтров. Вобще стоило бы сделать и до выкладки наружу, но не успеваем, так что можно просто сделать временно проект приватным, чтобы по нему не лазили. (хотя строго говоря, забредший бот листающий страницы списка в 150-200 задач не сделает погоды даже без индексов.