Сохраняйте 2-ую таблицу года / дня.При чтении можно взять его первым.При добавлении в my_data также обновляйте, но сохраняйте вставленный кэш дней, чтобы каждое приложение пробовало вставку только один раз в день.например, добавление дополнительного ключа, чтобы можно было иметь несколько потоков, а не только одну таблицу для временного ряда:
CREATE TABLE my_data (
key blob,
year smallint,
day smallint,
date timestamp,
value text
PRIMARY KEY ((key, year, day), timestamp)
) WITH CLUSTERING ORDER BY (date DESC);
CREATE TABLE my_data_keys (
key blob,
year smallint,
day smallint,
PRIMARY KEY ((key), year, day)
)
Для вставок:
INSERT INTO my_data_keys (key, year, day) VALUES (0x01, 1, 2)
INSERT INTO my_data ...
Затем сохранить в памяти Набор где-нибудь, что высохранил этот ключ / год / данные, поэтому вам не нужно каждый раз вставлять его.Чтобы прочитать последние:
SELECT year, day FROM my_data_keys WHERE key = 0x01;
драйвер возвращает итератор, для каждого элемента в нем сделать запрос к my_data, пока не будет достигнуто 50 записей.
Если вставки происходят достаточно часто, они могут просто работать в обратном направлении с сегодняшнего дня", выдавая запросы, пока не получишь 50 событий.Если данные разрежены, это может привести к большим потерям при чтении и работе другой таблицы.