Habe es schon wieder vergessen und möchte jetzt nicht nochmal alle Posts durchlesen.
Falls du nur Webspace gemietet hast, brauchst du den Rest nicht mehr zu lesen.
Es würde eine weitere Datenbank erfordern.
Das Problem, dass du hast, ist schon sehr oft gelöst worden.
Stichpunkt: Hashtables und Suchindex aufbauen
Python:
In [22]: d = {x: None for x in range(int(1e7))}
In [23]: len(d)
Out[23]: 10000000
In [24]: %timeit 6666 in d
39.2 ns ± 0.104 ns per loop (mean ± std. dev. of 7 runs, 10000000 loops each)
40 ns um 6666 in einer Hashtable zu finden, die aus 1e7 Einträgen besteht.
1e8 Einträge konnte ich jetzt leider nicht testen, da er schon anfing wie blöde zu swappen :-D
Es würde helfen, wenn du so etwas wie einen Suchindex hast und das am besten key-value basiert, da der Lookup O(1) ist.
Dann muss einmal für alle Daten ein Suchindex erstellt werden. Die Keys sind die Wörter, die Values die
ids der Datensätze (am besten als liste oder tuple). Wenn du mehrere Wörter kombinierst, sind die Abfragen auch schnell.
Die Values in sets umwandeln und davon die Schnittmenge bilden (oder vereinigen) und somit hast du
dann auch für Wortkombinationen Ergebnisse. Lediglich das Erstellen des Suchindex wird einige Zeit in Anspruch nehmen.
Generell ist es so, dass das erstellen von Hashtables langsamer ist. Die Abfrage hingegen immer gleich schnell.
Nachdem der komplette Suchindex erstellt worden ist, müssen nur noch neue Datensätze hinzugefügt werden.
Lediglich das Löschen von Daten hinterlässt Lücken und würde dann auch auf Datensätze verweisen, die nicht mehr existieren.
Macht aber nichts, dann fragt man die Daten einfach ab und wenn ein Datensatz nicht mehr existiert, kann der Suchindex an der Stelle aktualisiert werden. Wenn es mehre Wörter sind, musst du alle Values der entsprechenden Keys (Wörter)
MySQL kann das glaube ich nicht. Redis und MongoDB sind solche Kandidaten.
Falls du das machst, mach es so einfach wie möglich oder gleich kommt jemand und postet einfach ein Link von irgendeiner bereits fertigen Lösung.
War doch ein VServer oder doch Webspace.