В настоящее время я оптимизирую свое приложение и хочу выяснить, какой способ будет быстрее и лучше с точки зрения производительности в следующем сценарии.
У меня есть таблица с 4 полями - id, user, status, entryTime
.
Я записываю в эту конечную точку около 100 раз каждые 10 секунд, то есть в среднем 10 операций записи в секунду.
Первичный ключ — user
, а ключ кластеризации — entryTime and id
.
У меня есть конечная точка, где мне нужно получить все записи между определенным entryTime
для конкретного пользователя, например, для пользователя с идентификатором 1
, где entryTime
больше 2019-06-04T07:58:28.000Z
и меньше 2019-06-04T08:58:28.000Z
.
Другая конечная точка — это то, где я должен получать определенные status
для конкретного пользователя.
Лучше ли создать представление материализации для второй конечной точки (где мне нужно получить статус) с разными ключами или добавить индекс SASI?
Поскольку таблица также часто обновляется и часто записывается, из того, что я читал, запись занимает около 10% производительности, но применимо ли это ко всем таблицам, которые часто читают/записывают?
Существуют ли какие-либо контрольные точки для дальнейшего использования, которым я могу следовать, чтобы определить, следует ли мне использовать материализованное представление или индекс SASI?