G
G
geebv2016-08-27 18:39:36
PostgreSQL
geebv, 2016-08-27 18:39:36

How to set up a table so that the data is stored in sorted form?

Let timeseries data be written to the table. It is necessary that the last record
would be guaranteed to be obtained on request In cassandra, for example, there is such an option CLUSTERING ORDER. How to achieve this in psql? SELECT * FROM tablename LIMIT 1

Answer the question

In order to leave comments, you need to log in

2 answer(s)
T
terrier, 2016-08-28
@geebv

SELECT в SQL оперирует сетами, то есть неупорядоченными множествами. Порядок в котором будут выданы результаты вообще говоря неопределен и зависит от реализации.
А вот достать последнее значение из индекса по таймстемпу - быстрая операция, занимающая O(1)

Артем Килеев, 2016-08-27
@akileev

Насколько я знаю гарантированно этого в PostgreSQL не достичь.
Но можно создать индекс для таблицы, а потом

CREAT INDEX index_name ON tablename (column_name DESC NULLS LAST)
CLUSTER tablename USING index_name

После этого данные в таблице будут реорганизованы в том порядке, в котором отсортированы данные в индексе. Только это разовая операция, нужно будет периодически ее снова выполнять.

Didn't find what you were looking for?

Ask your question

Ask a Question

731 491 924 answers to any question