Кэш typeorm автоматически добавляет суффикс нумерации страницMySql

Форум по Mysql
Ответить
Anonymous
 Кэш typeorm автоматически добавляет суффикс нумерации страниц

Сообщение Anonymous »

В приложенииnestjs мы только начали реализовывать кэш слоя базы данных typeorm
согласно документации здесь — https://orkan.gitbook.io/typeorm/docs/d ... /6-caching
это единственный случай, когда мы добавили кеширование, оно тоже работает нормально

Код: Выделить всё

  async userByIdWithColumns(id: string, ReqColumns: string[] = []) {
const selectOptions = [
...defaultColumns,
...ReqColumns,
];

const foundOneOptions: FindOneOptions = {
where: { id },
select: selectOptions,
relations: {
role: true,
},
cache: {
id: `user-findone-${id}`,
milliseconds: 60 * 60 * 1000
}
};
return this.userRepository.findOne(foundOneOptions);
}

однако в БД вышеуказанное запускается несколько раз (без нумерации страниц)

Код: Выделить всё

mysql> select id, duration, identifier from query_result_cache;
+----+----------+------------------------------------------------------------------+
| id | duration | identifier                                                       |
+----+----------+------------------------------------------------------------------+
| 20 |  3600000 | user-findone-a0c66c98-cb9d-4f36-b5b9-b92411af74a8-pagination     |
| 21 |  3600000 | user-findone-a0c66c98-cb9d-4f36-b5b9-b92411af74a8                |
+----+----------+------------------------------------------------------------------+
2 rows in set (0.00 sec)
В настройке нет ничего особенного, за исключением того, что частота этого запроса высока, поэтому может возникнуть какая-то гонка. Интересно, что этого не происходит (кешируется только один запрос, а не нумерация страниц), когда я не запрашиваю роль, т.е. удаляю ключ отношений.
запросы кэшируются, но если я удаляю отношения, запись 34 не создается

Код: Выделить всё

mysql> select * from query_result_cache;
+----+--------------------------------------------------------------+---------------+----------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+--------------------------------------------------------------------------------+
| id | identifier                                                   | time          | duration | query                                                                                                                                                                                                                                                                                                                                                                                | result                                                                         |
+----+--------------------------------------------------------------+---------------+----------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+--------------------------------------------------------------------------------+
| 34 | user-findone-a0c66c98-cb9d-4f36-b5b9-b92411af74a8-pagination | 1763454776805 |  3600000 | SELECT DISTINCT `distinctAlias`.`User_id` AS `ids_User_id` FROM (SELECT `User`.`id` AS `User_id`, `User__User_role`.`id` AS `User__User_role_id` FROM `user` `User` LEFT JOIN `roles` `User__User_role` ON `User__User_role`.`id`=`User`.`role_id` WHERE ((`User`.`id` = ?))) `distinctAlias` ORDER BY `User_id` ASC LIMIT 1 -- PARAMETERS: ["a0c66c98-cb9d-4f36-b5b9-b92411af74a8"] | [{"ids_User_id":"a0c66c98-cb9d-4f36-b5b9-b92411af74a8"}]                       |
| 35 | user-findone-a0c66c98-cb9d-4f36-b5b9-b92411af74a8            | 1763454776841 |  3600000 | SELECT `User`.`id` AS `User_id`, `User__User_role`.`id` AS `User__User_role_id` FROM `user` `User` LEFT JOIN `roles` `User__User_role` ON `User__User_role`.`id`=`User`.`role_id` WHERE ( ((`User`.`id` = ?)) ) AND ( `User`.`id` IN (?) ) -- PARAMETERS: ["a0c66c98-cb9d-4f36-b5b9-b92411af74a8","a0c66c98-cb9d-4f36-b5b9-b92411af74a8"]                                            | [{"User_id":"a0c66c98-cb9d-4f36-b5b9-b92411af74a8","User__User_role_id":null}] |
+----+--------------------------------------------------------------+---------------+----------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+--------------------------------------------------------------------------------+
2 rows in set (0.01 sec)
пакеты

Код: Выделить всё

    "typeorm": "^0.3.22",
"@nestjs/typeorm": "^11.0.0",
"@nestjs/core": "^10.0.2",
"mysql2": "^3.14.0",

ожидаемое поведение — только одна запись для одного идентификатора
фактическое поведение — как упоминалось выше
почему typeorm добавляет суффикс нумерации страниц, если нумерации страниц нет?
теперь, в случае недействительности приведенного выше, нам придется аннулировать оба?

Подробнее здесь: https://stackoverflow.com/questions/798 ... ion-suffix
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «MySql»