Zusammengesetzter FULLTEXT-Index in MySQL

Ich möchte das System so einstellen, dass es Benutzernachrichten nach bestimmten Benutzern durchsucht. Nehmen wir an, folgende Tabelle zu haben

create table messages(
  user_id int,
  message nvarchar(500));

Also, welche Art von Index sollte ich hier verwenden, wenn ich nach allen Nachrichten von Benutzer 1 suchen möchte, die das Wort 'foo' enthalten.

Einfach, nicht eindeutiger IndexBenutzeridentifikation
Es werden nur bestimmte Benutzermeldungen gefiltert und anschließend nach einem bestimmten Wort gesucht.VOLLER TEXT Index aufBotschaft
Dies findet alle Nachrichten von allen Benutzern und filtert dann nach ID. Scheint bei einer großen Anzahl von Benutzern sehr ineffizient zu sein.comopound Index auf beidenBenutzeridentifikation undBotschaft
Der Volltextindexbaum wird also für jeden Benutzer separat erstellt, sodass sie einzeln durchsucht werden können. Während der Abfrage filtert das System Nachrichten nachICH WÜRDE und führt dann eine Textsuche für die verbleibenden Zeilen im Index durch.

SO VIEL ICH WEISS. Letzteres ist unmöglich. Dann gehe ich davon aus, dass ich die erste Option verwenden werde. Wird sie bei einigen Tausend Benutzern besser abschneiden?

Und wenn jede ~ 100 Nachrichten haben wird, kostet eine vollständige Iteration nicht viel Ressourcen?

Vielleicht kann ich den Benutzernamen in die Nachricht aufnehmen und den BOOLEAN-Volltextsuchmodus verwenden, aber ich denke, dass dies langsamer ist als die Verwendung von indiziertBenutzeridentifikation.

Antworten auf die Frage(2)

Ihre Antwort auf die Frage