В настоящее время я пытаюсь оптимизировать медленный процесс извлечения страницы записей журнала из базы данных SQLite.
Я заметил, что почти всегда извлекаю следующие записи вместе с количеством доступных записей:
SELECT time, level, type, text FROM Logs
WHERE level IN (%s)
ORDER BY time DESC, id DESC
LIMIT LOG_REQ_LINES OFFSET %d* LOG_REQ_LINES ;
вместе с общим количеством записей, которые могут соответствовать текущему запросу:
SELECT count(*) FROM Logs WHERE level IN (%s);
(для отображения "страницы n из m")
Интересно, смогу ли я объединитьдва запроса, и задайте их оба в одном sqlite3_exec (), просто объединяя строку запроса.Как должна выглядеть моя функция обратного вызова?Могу ли я различить данные разных типов по argc
?
Какие еще варианты оптимизации вы бы предложили?