J'essaie actuellement d'optimiser le processus lent de récupération d'une page d'entrées de journal à partir de la base de données SQLite.Résultats de deux requêtes à la fois dans sqlite?
Je remarqué que je presque toujours récupérer les entrées suivantes avec le nombre d'entrées disponibles:
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 ;
ainsi que le nombre total d'enregistrements qui peuvent correspondre à la requête en cours:
SELECT count(*) FROM Logs WHERE level IN (%s);
(pour un affichage " page n de m ")
Je me demande, si je pouvais concaténer les deux requêtes, et leur demander à la fois dans un sqlite3_exec() simplement concaténer la chaîne de requête. Comment devrait alors apparaître ma fonction de rappel? Puis-je distinguer les différents types de données par argc
?
Quelles autres optimisations suggérez-vous?
En fait, il a d'abord été jugé nécessaire de trier en fonction du temps en raison des changements d'heure d'été et du réglage de l'horloge. Ensuite, il a été jugé définitivement contre-productif (en mélangeant les journaux avant et après le changement d'heure d'été) et a ensuite été mis au rebut. –