Тут не исправить уже ничего, Господь, жги! Войти !bnw Сегодня Клубы

В sqlite с версии 3.8 появился partial index — возможность строить индекс по заданному условию.

CREATE INDEX temperature_scale_1 ON temperature(sensor ASC, timestamp ASC) WHERE scale=1; 
CREATE INDEX temperature_scale_5 ON temperature(sensor ASC, timestamp ASC) WHERE scale=5;

Но при запуске prepared statement планировщик выбирает индексы ДО байндинга, а значит ещё не знает, каким будет значение условия, и созданный partial index использован не будет.
Приходится вручную подставлять значения, используемые таким индексом, и снова помнить про экранирование от sql-инъекций, если используются не числовые значения.

sensor, scale, start, end = 1, 5, 1451628000, 1452492000 

c.execute('SELECT * FROM temperature WHERE sensor = ? AND scale = %d AND timestamp BETWEEN ? AND ?' % (scale), (sensor, start, end))
#RHKE5E / @kogda / 3016 дней назад

Чем ето лучше rrd?
#RHKE5E/68J / @l29ah / 3016 дней назад

@l29ah >The data is stored in a circular buffer based database
Мне нужны "исторические данные", это очередная дачная метеостанция.
Но RRD интересная штука, запомню её.

#RHKE5E/YCV / @kogda --> #RHKE5E/68J / 3016 дней назад
@l29ah чем rrd
#RHKE5E/4RY / @komar --> #RHKE5E/68J / 3016 дней назад
ipv6 ready BnW для ведрофона BnW на Реформале Викивач Котятки

Цоперайт © 2010-2016 @stiletto.