У меня есть таблица sqlite, определенная как:
class HourlyUserWebsite(Base):
__tablename__ = 'hourly_user_website'
id = Column(Integer, primary_key=True)
user = Column(String(600), index=True)
domain = Column(String(600))
time_secs = Column(Integer, index=True)
def __repr__(self):
return "HourlyUserWebsite(user='%s', domain='%s', time_secs=%d)" % \
(self.user, self.domain, self.time_secs)
, и я добавляю к ней элементы с помощью метода класса как:
def add_elements_to_hourly_db(self, data, start_secs, end_secs, engine):
session = self._get_session(engine)
for el in data:
session.add(el)
session.commit()
return
, поскольку данные представляют собой ожидаемые временные рядывсегда добавлять элементы с возрастающим или равным значением time_secs (не убывающим).
Я получаю данные из таблицы с помощью запроса типа: session.query(HorlyUserWebsite)
Я бы хотел, чтобы результаты этого запроса были отсортированы по time_secs
и user
.
Есть ли способ, которым я могу это сделать?Могут ли данные храниться таким образом, чтобы запрос отсортированных данных был оптимизирован с учетом того, что это временной ряд?