speed up host & pathname migration by using UNION. perform VACUUM for SQLite migrations.

This commit is contained in:
Danny van Kooten 2018-11-14 12:40:01 +01:00
parent 00d265764a
commit da6ffde2ea
9 changed files with 16 additions and 14 deletions

View File

@ -1,6 +1,5 @@
-- +migrate Up -- +migrate Up
INSERT IGNORE INTO hostnames(name) SELECT DISTINCT(hostname) FROM daily_page_stats; INSERT INTO hostnames(name) SELECT hostname FROM daily_page_stats UNION SELECT hostname FROM daily_referrer_stats;
INSERT IGNORE INTO hostnames(name) SELECT DISTINCT(hostname) FROM daily_referrer_stats;
-- +migrate Down -- +migrate Down

View File

@ -1,6 +1,5 @@
-- +migrate Up -- +migrate Up
INSERT IGNORE INTO pathnames(name) SELECT DISTINCT(pathname) FROM daily_page_stats; INSERT INTO pathnames(name) SELECT pathname FROM daily_page_stats UNION SELECT pathname FROM daily_referrer_stats;
INSERT IGNORE INTO pathnames(name) SELECT DISTINCT(pathname) FROM daily_referrer_stats;
-- +migrate Down -- +migrate Down

View File

@ -1,6 +1,5 @@
-- +migrate Up -- +migrate Up
INSERT INTO hostnames(name) SELECT DISTINCT(hostname) FROM daily_page_stats; INSERT INTO hostnames(name) SELECT hostname FROM daily_page_stats UNION SELECT hostname FROM daily_referrer_stats;
INSERT INTO hostnames(name) SELECT DISTINCT(hostname) FROM daily_referrer_stats ON CONFLICT(name) DO NOTHING;
-- +migrate Down -- +migrate Down

View File

@ -1,6 +1,5 @@
-- +migrate Up -- +migrate Up
INSERT INTO pathnames(name) SELECT DISTINCT(pathname) FROM daily_page_stats ON CONFLICT(name) DO NOTHING; ; INSERT INTO pathnames(name) SELECT pathname FROM daily_page_stats UNION SELECT pathname FROM daily_referrer_stats;
INSERT INTO pathnames(name) SELECT DISTINCT(pathname) FROM daily_referrer_stats ON CONFLICT(name) DO NOTHING; ;
-- +migrate Down -- +migrate Down

View File

@ -0,0 +1,4 @@
-- +migrate Up notransaction
VACUUM;
-- +migrate Down

View File

@ -1,6 +1,5 @@
-- +migrate Up -- +migrate Up
INSERT OR IGNORE INTO hostnames(name) SELECT DISTINCT(hostname) FROM daily_page_stats; INSERT INTO hostnames(name) SELECT hostname FROM daily_page_stats UNION SELECT hostname FROM daily_referrer_stats;
INSERT OR IGNORE INTO hostnames(name) SELECT DISTINCT(hostname) FROM daily_referrer_stats;
-- +migrate Down -- +migrate Down

View File

@ -1,6 +1,5 @@
-- +migrate Up -- +migrate Up
INSERT OR IGNORE INTO pathnames(name) SELECT DISTINCT(pathname) FROM daily_page_stats; INSERT INTO pathnames(name) SELECT pathname FROM daily_page_stats UNION SELECT pathname FROM daily_referrer_stats;
INSERT OR IGNORE INTO pathnames(name) SELECT DISTINCT(pathname) FROM daily_referrer_stats;
-- +migrate Down -- +migrate Down

View File

@ -0,0 +1,4 @@
-- +migrate Up notransaction
VACUUM;
-- +migrate Down

View File

@ -48,7 +48,7 @@ func New(c *Config) *sqlstore {
log.Printf("Connected to %s database: %s on %s", c.Driver, c.Dbname(), c.Host) log.Printf("Connected to %s database: %s on %s", c.Driver, c.Dbname(), c.Host)
} }
// run migrations // apply database migrations (if any)
db.Migrate() db.Migrate()
return db return db