Я хочу вести подсчет некоторых элементов, таких как лайки и комментарии к публикации. Скорость записи может быть высокой, например. 1К лайков / сек.
Использование SELECT COUNT
не представляется возможным, даже если набор результатов проиндексирован, поскольку для подсчета может потребоваться несколько миллионов строк.
Я думаю об использовании подхода с использованием сегментированных счетчиков, когда конкретный счетчик (лайков для данного сообщения) состоит из N
сегментов / строк. Увеличение счетчика приведет к увеличению значения столбца в строке одного осколка, в то время как чтение счетчика приведет к чтению всех строк осколка и суммированию значений счетчика. Возникнут ли проблемы при таком подходе со Spanner?
Я понимаю, что в Bigtable несколько обновлений одной и той же строки будут создавать новые версии ячеек в строке, и в результате вы можете привести к превышению допустимого размера строки. Поэтому использование строк в качестве сегментированных счетчиков в Bigtable кажется плохой идеей. Есть ли у Spanner похожие проблемы?