mirror of
https://github.com/pi-hole/pi-hole.git
synced 2024-11-15 18:53:56 +00:00
10c2dad48a
* Gravity performance improvements. Signed-off-by: DL6ER <dl6er@dl6er.de> * Do not move downloaded lists into migration_backup directory. Signed-off-by: DL6ER <dl6er@dl6er.de> * Do not (strictly) sort domains. Random-leaf access is faster than always-last-leaf access (on average). Signed-off-by: DL6ER <dl6er@dl6er.de> * Append instead of overwrite gravity_new collection list. Signed-off-by: DL6ER <dl6er@dl6er.de> * Rename table gravity_new to gravity_temp to clarify that this is only an intermediate table. Signed-off-by: DL6ER <dl6er@dl6er.de> * Add timers for each of the calls to compute intense parts. They are to be removed before this finally hits the release/v5.0 branch. Signed-off-by: DL6ER <dl6er@dl6er.de> * Fix legacy list files import. It currently doesn't work when the gravity database has already been updated to using the single domainlist table. Signed-off-by: DL6ER <dl6er@dl6er.de> * Simplify database_table_from_file(), remove all to this function for gravity lost downloads. Signed-off-by: DL6ER <dl6er@dl6er.de> * Update gravity.db.sql to version 10 to have newle created databases already reflect the most recent state. Signed-off-by: DL6ER <dl6er@dl6er.de> * Create second gravity database and swap them on success. This has a number of advantages such as instantaneous gravity updates (as seen from FTL) and always available gravity blocking. Furthermore, this saves disk space as the old database is removed on completion. * Add timing output for the database swapping SQLite3 call. Signed-off-by: DL6ER <dl6er@dl6er.de> * Explicitly generate index as a separate process. Signed-off-by: DL6ER <dl6er@dl6er.de> * Remove time measurements. Signed-off-by: DL6ER <dl6er@dl6er.de>
21 lines
683 B
SQL
21 lines
683 B
SQL
.timeout 30000
|
|
|
|
ATTACH DATABASE '/etc/pihole/gravity.db' AS OLD;
|
|
|
|
BEGIN TRANSACTION;
|
|
|
|
INSERT OR REPLACE INTO "group" SELECT * FROM OLD."group";
|
|
INSERT OR REPLACE INTO domain_audit SELECT * FROM OLD.domain_audit;
|
|
|
|
INSERT OR REPLACE INTO domainlist SELECT * FROM OLD.domainlist;
|
|
INSERT OR REPLACE INTO domainlist_by_group SELECT * FROM OLD.domainlist_by_group;
|
|
|
|
INSERT OR REPLACE INTO adlist SELECT * FROM OLD.adlist;
|
|
INSERT OR REPLACE INTO adlist_by_group SELECT * FROM OLD.adlist_by_group;
|
|
|
|
INSERT OR REPLACE INTO info SELECT * FROM OLD.info;
|
|
|
|
INSERT OR REPLACE INTO client SELECT * FROM OLD.client;
|
|
INSERT OR REPLACE INTO client_by_group SELECT * FROM OLD.client_by_group;
|
|
|
|
COMMIT;
|