Операция только для чтения - выполнение операций чтения с отметкой времени
Я имею в виду транзакцию только для чтения с параметром 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