Złożony indeks FULLTEXT w MySQL

Chciałbym, aby system pozwalał na wyszukiwanie wiadomości użytkownika przez określonego użytkownika. załóżmy, że masz podany stół

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

Jakiego rodzaju indeksu powinienem tutaj użyć, jeśli chcę wyszukać wszystkie wiadomości od użytkownika 1, zawierające słowo „foo”.

Prosty, nie unikalny indeksidentyfikator użytkownika
Będzie filtrować tylko określone wiadomości użytkownika, a następnie pełne skanowanie w poszukiwaniu określonego słowa.PEŁNY TEKST indeks nawiadomość
to znajdzie wszystkie wiadomości od wszystkich użytkowników, a następnie filtruj według ID, wydaje się być bardzo nieefektywne w przypadku dużej liczby użytkowników.comopound indeks na obuidentyfikator użytkownika iwiadomość
Drzewo indeksu pełnotekstowego jest tworzone dla każdego użytkownika osobno, więc można je przeszukiwać indywidualnie. Podczas zapytania system filtruje wiadomości wedługID a następnie wykonuje wyszukiwanie tekstu w pozostałych wierszach indeksu.

A.F.A.I.K. ostatni jest niemożliwy. Więc zakładam, że użyję opcji 1-szej, będzie ona działać lepiej w przypadku kilku tysięcy użytkowników?

A jeśli każdy będzie miał ~ 100 wiadomości, pełna iteracja nie będzie kosztować dużo zasobów?

Być może mogę dołączyć nazwę użytkownika do wiadomości i użyć trybu wyszukiwania pełnotekstowego BOOLEAN, ale myślę, że byłoby wolniej niż przy użyciu indeksowanychidentyfikator użytkownika.

questionAnswers(2)

yourAnswerToTheQuestion