50.000 E-Mails in Millisekunden durchsuchen: So funktioniert der lokale Index von MailVault
Tippe ein Wort in MailVault, und die neuesten Treffer stehen auf dem Bildschirm, noch bevor du den Tastendruck beendet hast. Um zu prüfen, dass das auch bei einem wirklich großen Postfach gilt, haben wir einen Vault mit 50.000 Nachrichten gebaut und die Suche gemessen. Die langsamste Abfrage, die wir ausgeführt haben, dauerte 14 Millisekunden.
Dieser Beitrag nennt die tatsächlichen Zahlen, was gemessen wurde und was nicht, und die Technik dahinter: eine kleine, schlichte SQL-Datenbank, die in deinem Vault liegt.
Der Test
Wir haben 50.000 Nachrichten von jeweils etwa 3.3 KB erzeugt, in der Form aus HTML und Nur-Text (multipart), die echte Mail hat. Sie verteilen sich auf drei Ordner (Posteingang, Archiv und Gesendet, je etwa ein Drittel), mit bekannten Wörtern in bekannten Anteilen: „invoice“ in 5 % der Nachrichten, „budget“ in 8 %, „meeting“ in 6 %, dazu japanische und akzentuierte Wörter, um die nicht-englische Suche zu prüfen. Jede Nachricht lief durch den echten MIME-Parser und den echten Index-Code von MailVault, in einem Release-Build.
Die Maschine war ein Apple M4 Mac mini mit 16 GB Speicher. Sie war nicht im Leerlauf: Während der Tests liefen darauf andere Builds, nimm die Zeiten also als das, was du auf einem ausgelasteten Computer bekommst. Jede Abfrage lief sechsmal, dreimal auf einem Scratch-Build der Korrektur und dreimal auf dem gemergten Code. Die Werte unten sind der Bereich über diese Läufe, und jede Zeit umfasst die Suche plus den Aufbau der Ergebniszeilen, die du in der Liste siehst.
Die Ergebnisse
50,000 messages · Apple M4 · warm cache · 6 runs each
query matches rows shown time
invoice ~2,500 500 7.1 – 7.5 ms
budget meeting 246 246 13.4 – 14.1 ms
update 4999 15 15 13.5 – 14.0 ms
会議 (Japanese) 1,529 500 4.3 – 4.6 ms
last 7 days, no words 1,008 500 1.0 ms
first index build 11 s (10.9 – 11.9 s)
index size on disk 225 MB
status check 5 ms
Zwei Dinge lassen sich aus dieser Tabelle ablesen. Erstens hängt die Zeit nicht von der Zahl der Treffer ab: 15 Treffer brauchten länger als 2.500, denn Zeit kostet die Form der Abfrage (eine Phrase aus zwei Wörtern ist mehr Arbeit als ein einzelnes Wort), nicht die Menge der zurückgegebenen Mail. Zweitens zeigt die Liste höchstens die neuesten 500 Treffer und sagt das, wenn es mehr gibt, sodass das Anzeigen der Ergebnisse begrenzte Arbeit ist, egal wie viele Nachrichten passen.

Der einmalige Aufwand ist der Aufbau des Index: etwa elf Sekunden für 50.000 Nachrichten, ungefähr 4.000 Nachrichten pro Sekunde, und 225 MB Speicherplatz. Er läuft im Hintergrund, du kannst MailVault währenddessen weiter nutzen, und danach werden nur neue und geänderte Nachrichten indexiert.

Wie sich 1 ms und 7 ms anfühlen
Millisekunden sind schwer vorstellbar, deshalb hier ein Lineal. Ein 60-Hz-Display zeichnet alle 16.7 ms neu, und selbst die langsamste Suche hier war innerhalb eines einzigen Neuzeichnens fertig. Die Usability-Forschung nutzt seit 1993 dieselben drei Grenzen: Unter 0.1 Sekunden fühlt sich sofort an, bis 1 Sekunde bleibt dein Gedankengang ungestört, und nach 10 Sekunden ist deine Aufmerksamkeit weg. Vierzehn Millisekunden sind etwa ein Siebtel der Grenze für „sofort“. Der Datumsfilter liegt mit 1 ms hundertmal darunter.
Servermail, Archiv und Backup: eine Suche

MailVault hält drei Arten von Mail nebeneinander: vom Server synchronisierte Nachrichten, von dir archivierte Nachrichten und aus einem Backup wiederhergestellte Nachrichten. Sie alle landen als Dateien im selben Vault und gehen deshalb in denselben Index. Im Test lag die Mail in einem Posteingang, einem Archiv und einem Gesendet-Ordner, und eine Abfrage deckte alles ab. Woher eine Nachricht stammt, ändert nichts daran, wie schnell sie gefunden wird.
Mail, die nur auf dem Server liegt und nie heruntergeladen wurde, ist nicht im Vault, daher kann der lokale Index nichts davon wissen. Dafür fragt MailVault zusätzlich den Server, und indexierte lokale Ergebnisse erscheinen zuerst, während der Server antwortet. Dieser Teil hängt von deinem Anbieter ab, deshalb nennen wir dafür keine Zahl. Mit Premium kannst du bis zu fünf Server-Postfächer gleichzeitig durchsuchen statt eines.
Das externe Backup-Laufwerk ist eine zweite, kalte Kopie. Die Suche läuft auf deinem Arbeits-Vault, und Ergebnisse werden markiert, wenn eine Kopie auch auf dem Backup-Laufwerk existiert.
Die Technik: eine sehr schnelle, sehr einfache SQL-Datenbank
Es gibt keinen Suchserver und keinen Cloud-Dienst. Der Index ist eine einzige SQLite-Datei in deinem Vault, und SQLite ist wahrscheinlich die am weitesten verbreitete Datenbank der Welt. MailVault nutzt deren Volltextsuchmaschine FTS5 mit einem Trigram-Tokenizer: Jedes Wort wird als überlappende Drei-Buchstaben-Stücke gespeichert. Deshalb kannst du „voic“ eintippen und „invoice“ finden, ohne Platzhalter und ohne Ganzwort-Regeln. Akzente werden vereinheitlicht, sodass „reunion“ auch „Réunion“ findet. Japanisch und Chinesisch, die keine Leerzeichen zwischen Wörtern verwenden, laufen über eine zweite, dafür gebaute Tabelle.
Die Geschwindigkeit kommt aus drei schlichten Entscheidungen:
- Die Suche öffnet nie eine Nachrichtendatei. Alles, was die Liste braucht (Absender, Betreff, Datum, Ordner, Flags), steht in der Zeile des Index. Beim Test mit 50.000 Nachrichten wurde der Mail-Parser null Mal aufgerufen, während die Ergebnisse aufgebaut wurden.
- Eine Datei, ein Prozess. Der Index gehört dem Hintergrundhelfer von MailVault, wird einmal geöffnet und bleibt warm. Es gibt nichts zu starten und nichts, das über ein Netzwerk gesendet werden müsste.
- Deine Festplatte bleibt die maßgebliche Quelle. Der Index besteht aus abgeleiteten Daten. Wird er einmal beschädigt, baut MailVault ihn aus deinen gespeicherten Nachrichten neu auf und rührt die Nachrichten selbst nie an.
Sie funktioniert offline, und nichts verlässt deinen Computer.
Anhänge und Bilder (Premium)
Die kostenlose Suche umfasst Absender, Betreffs und Nachrichtentexte. Premium ergänzt den Text in Anhängen, im selben Index und im selben Suchfeld:
- Text in Anhängen. PDF-, Word-, Excel- und PowerPoint-Dateien werden gelesen und ihr Text wird indexiert, sodass eine Suche nach einer Vertragsnummer die Nachricht findet, deren PDF sie enthält.
- Text in Bildern und Scans unter macOS. MailVault nutzt das Vision-Framework von Apple auf deinem Mac, um Text in Fotos, Screenshots und gescannten Seiten zu erkennen, und indexiert ihn dann. Die Erkennung läuft auf dem Gerät. Unter Windows und Linux gibt es diesen Schritt nicht.
Ein Suchtreffer, der nur in einem Anhang existiert, wird mit einer Büroklammer markiert, damit du weißt, warum eine E-Mail mit unauffälligem Text aufgetaucht ist. Die Extraktion von Anhängen haben wir in diesem Test nicht gemessen: Sie hängt von deinen Dateien ab und läuft einmal pro Anhang im Hintergrund, nicht zur Suchzeit.
Wie andere Mail-Programme ihre Suche beschreiben
Wir haben andere Mail-Apps nicht gemessen, und keine der folgenden veröffentlicht Suchzeiten bei 50.000 Nachrichten, daher ist das ein Vergleich der Konzepte, nicht der Stoppuhren:
- Apple Mail: Apple gibt an, dass die erste Indexierung von Spotlight je nach Datenmenge Stunden oder sogar Tage dauern kann und dass Mail einen Hinweis anzeigen kann, dass die Indexierung noch nicht abgeschlossen ist.
- Outlook für Windows nutzt den Windows-Search-Index, und Microsoft weist darauf hin, dass Ergebnisse unvollständig sein können, bis die Indexierung abgeschlossen ist, dass nur lokal zwischengespeicherte Mail indexiert wird und dass ältere Elemente ausgeblendet werden können, wenn eine Suche zu viele Treffer liefert.
- Thunderbird führt einen globalen Index in seiner eigenen Datenbank. Im Bugtracker gibt es seit Langem offene Meldungen über eine Indexierung, die bei großen Postfächern langsamer wird, darunter ein Nutzer, der für 36.000 Nachrichten mehrere Tage angab. Das sind Nutzerberichte auf älterer Hardware und mit unserem Test nicht direkt vergleichbar.
Unsere Designentscheidung ist die Umkehrung der üblichen: Wir indexieren deine eigene gespeicherte Kopie, halten sie in einer kleinen Datei und halten den Abfragepfad so kurz, dass die Antwort in Millisekunden gemessen wird.
Was dieser Test nicht zeigt
Das Postfach ist synthetisch. Echte Mail hat größere und unordentlichere Nachrichten, daher wird der Index bei dir größer sein, wenn deine Texte lang sind, auch wenn eine Abfrage weiterhin den Index durchläuft und nicht deine Dateien. Die Zeiten gelten bei warmem Cache: Die erste Suche nach einem Neustart liest mehr von der Festplatte. Der Test umfasst Betreffs, Absender und Nachrichtentexte, nicht den Text von Anhängen, und er lief auf einer einzigen Maschine.
Du kannst die Messung selbst wiederholen: Der Benchmark ist der ignorierte Rust-Test search_index_bench_50k_real_parser im Quellcode von MailVault, und er gibt jede oben genannte Zahl aus.
Finde die E-Mail von vor sechs Jahren in Millisekunden.
MailVault führt neben deinem Archiv einen privaten Suchindex, sodass 50.000 Nachrichten so leicht zu durchsuchen sind wie 500. Kostenlos nutzbar. Die Suche in Anhängen und Bildern gibt es mit Premium.
Quellen: Apple Support, Spotlight-Indexierung; Microsoft Support, Probleme bei der Outlook-Suche; Mozilla Bugzilla 585429. Benchmark gemessen am 21. September 2026.