Skip to content

Commit

Permalink
refactor: remove redundant indices
Browse files Browse the repository at this point in the history
  • Loading branch information
matthiasn committed Jan 6, 2025
1 parent 3bc19f6 commit fd5587c
Show file tree
Hide file tree
Showing 5 changed files with 43 additions and 93 deletions.
2 changes: 1 addition & 1 deletion lib/database/common.dart
Original file line number Diff line number Diff line change
Expand Up @@ -62,7 +62,7 @@ class LogInterceptor extends QueryInterceptor {
final duration = stopwatch.elapsedMilliseconds;
if (duration > 100) {
debugPrint(
'$startTime ${description.truncate(300)} => took $duration ms',
'$startTime ${description.truncate(500)} => took $duration ms',
);
}

Expand Down
16 changes: 10 additions & 6 deletions lib/database/database.dart
Original file line number Diff line number Diff line change
Expand Up @@ -42,7 +42,7 @@ class JournalDb extends _$JournalDb {
bool inMemoryDatabase = false;

@override
int get schemaVersion => 24;
int get schemaVersion => 25;

@override
MigrationStrategy get migration {
Expand Down Expand Up @@ -70,7 +70,6 @@ class JournalDb extends _$JournalDb {
await () async {
debugPrint('Add category_id in journal table, with index');
await m.addColumn(journal, journal.category);
await m.createIndex(idxJournalCategory);
}();
}

Expand All @@ -93,14 +92,19 @@ class JournalDb extends _$JournalDb {
if (from < 24) {
await () async {
debugPrint('Adding composite indices');
await m.createIndex(idxJournalComposite);
await m.createIndex(idxJournalHabitCompletions);
await m.createIndex(idxJournalHabitCompletions2);
await m.createIndex(idxJournalLinked);
await m.createIndex(idxLinkedEntriesFromIdHidden);
await m.createIndex(idxLinkedEntriesToIdHidden);
}();
}

if (from < 25) {
await () async {
debugPrint('Adding composite indices');
await m.createIndex(idxJournalTab);
await m.createIndex(idxJournalTasks);
await m.createIndex(idxJournalTypeSubtype);
}();
}
},
);
}
Expand Down
31 changes: 9 additions & 22 deletions lib/database/database.drift
Original file line number Diff line number Diff line change
Expand Up @@ -23,27 +23,14 @@ CREATE TABLE journal (
PRIMARY KEY (id)
) as JournalDbEntity;

CREATE INDEX idx_journal_created_at ON journal (created_at);
CREATE INDEX idx_journal_updated_at ON journal (updated_at);
CREATE INDEX idx_journal_date_from ON journal (date_from DESC);
CREATE INDEX idx_journal_date_to ON journal (date_to);
CREATE INDEX idx_journal_deleted ON journal (deleted);
CREATE INDEX idx_journal_starred ON journal (starred);
CREATE INDEX idx_journal_private ON journal (private);
CREATE INDEX idx_journal_task ON journal (task);
CREATE INDEX idx_journal_task_status ON journal (task_status);
CREATE INDEX idx_journal_flag ON journal (flag);
CREATE INDEX idx_journal_type ON journal (type);
CREATE INDEX idx_journal_subtype ON journal (subtype);
CREATE INDEX idx_journal_geohash_string ON journal (geohash_string);
CREATE INDEX idx_journal_geohash_int ON journal (geohash_int);
CREATE INDEX idx_journal_category ON journal (category);

CREATE INDEX idx_journal_composite ON journal(type COLLATE BINARY ASC, private COLLATE BINARY ASC, starred COLLATE BINARY ASC, flag COLLATE BINARY ASC, deleted COLLATE BINARY ASC, date_from COLLATE BINARY DESC);
CREATE INDEX idx_journal_habit_completions ON journal(type COLLATE BINARY ASC, subtype COLLATE BINARY ASC, deleted COLLATE BINARY ASC, private COLLATE BINARY ASC, date_from COLLATE BINARY ASC, date_from COLLATE BINARY DESC, date_to COLLATE BINARY ASC, date_to COLLATE BINARY DESC);
CREATE INDEX idx_journal_habit_completions2 ON journal(type COLLATE BINARY ASC, deleted COLLATE BINARY ASC, private COLLATE BINARY ASC, date_from COLLATE BINARY ASC, date_from COLLATE BINARY DESC, created_at COLLATE BINARY ASC);
CREATE INDEX idx_journal_linked ON journal(id COLLATE BINARY ASC, private COLLATE BINARY ASC, deleted COLLATE BINARY ASC, date_from COLLATE BINARY DESC);
CREATE INDEX idx_journal_filtered_tasks ON journal(type COLLATE BINARY ASC, private COLLATE BINARY ASC, starred COLLATE BINARY ASC, private COLLATE BINARY ASC, deleted COLLATE BINARY ASC, task COLLATE BINARY ASC, task_status COLLATE BINARY ASC, category COLLATE BINARY ASC, date_from COLLATE BINARY DESC);
CREATE INDEX idx_journal_date_from_asc ON journal (date_from ASC);
CREATE INDEX idx_journal_date_from_desc ON journal (date_from DESC);
CREATE INDEX idx_journal_date_to_asc ON journal (date_to ASC);
CREATE INDEX idx_journal_date_to_desc ON journal (date_to DESC);

CREATE INDEX idx_journal_tab ON journal(type COLLATE BINARY ASC, date_from COLLATE BINARY DESC);
CREATE INDEX idx_journal_tasks ON journal(type COLLATE BINARY ASC, task_status COLLATE BINARY ASC, category COLLATE BINARY ASC, date_from COLLATE BINARY DESC);
CREATE INDEX idx_journal_type_subtype ON journal(type COLLATE BINARY ASC, subtype COLLATE BINARY ASC, category COLLATE BINARY ASC, date_from COLLATE BINARY DESC);

CREATE TABLE conflicts (
id TEXT NOT NULL,
Expand Down Expand Up @@ -408,7 +395,7 @@ SELECT * FROM journal
AND private IN (0, (SELECT status FROM config_flags WHERE name = 'private'))
AND date_from >= :rangeStart
AND deleted = false
ORDER BY created_at ASC;
ORDER BY date_from ASC;

quantitativeByType:
SELECT * FROM journal
Expand Down
85 changes: 22 additions & 63 deletions lib/database/database.g.dart

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

2 changes: 1 addition & 1 deletion pubspec.yaml
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
name: lotti
description: Achieve your goals and keep your data private with Lotti.
publish_to: 'none'
version: 0.9.552+2819
version: 0.9.552+2820

msix_config:
display_name: LottiApp
Expand Down

0 comments on commit fd5587c

Please sign in to comment.