Операция только для чтения - выполнение операций чтения с отметкой времени

Я имею в виду транзакцию только для чтения с параметром min_read_timestamp. Согласно документу, он выполняет все операции чтения с отметкой времени>= min_read_timestamp.

Предположим, у меня есть таблица с несколькими миллионами строк, но из определенной временной отметки было написано всего несколько строк. Как насчет производительности этого чтения (при условии, что с момента отметки времени было записано всего несколько строк)? Поддерживает ли гаечный ключ какой-либо внутренний индекс на основе метки времени записи для повышения производительности таких операций чтения, или мне все еще приходится полагаться на собственные индексы для ускорения чтения.

1 ответ

Согласно документации, ReadOnlyTransaction с min_read_timestamp выберет временную метку >= min_read_timestamp и вернет все данные, которые были обновлены на этой временной отметке или ранее.

Таким образом, использование его в запросе для обновления определенных строк, поскольку min_read_timestamp не является правильным использованием.

Я бы порекомендовал использовать запрос для выбора всех строк, где timestamp_column> = specific_timestamp, и создания составного индекса.

Cloud Spanner не создает индекс для оптимизации этого типа запроса. Возможно, вы захотите создать свой собственный индекс, хотя я бы порекомендовал это прочитать: https://cloud.google.com/spanner/docs/schema-design

Другие вопросы по тегам