В настоящее время я оптимизирую свое приложение и хочу выяснить, какой путь будет быстрее и эффективнее в следующем сценарии.
У меня есть таблица с 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
для конкретного пользователя.
Лучше ли создать представление материализации для 2-й конечной точки (где мне нужно получить статус) с другими ключами или добавить индекс SASI?
Поскольку таблица также часто обновляется и часто записывается, из того, что я прочитал, записи занимают около 10% производительности, но применимо ли это ко всем таблицам, которые часто читают / записывают?
Существуют ли какие-либо контрольные точки для дальнейшего использования, которые я могу использовать, чтобы определить, следует ли мне перейти к материализованному представлению или индексу SASI?