mysql - jakikolwiek sposób, aby pomóc w wyszukiwaniu pełnotekstowym z innym indeksem?

Powiedzmy, że mam tabelę „artykułów” z kolumnami:

article_text:  fulltext indexed
author_id:     indexed

teraz chcę wyszukać termin, który pojawia się w artykule napisanym przez konkretnego arthora.

więc coś w stylu:

select * from articles 
where author_id=54 
and match (article_text) against ('foo');

wyjaśnienie tego zapytania mówi mi, że mysql użyje tylko indeksu pełnotekstowego. Uważam, że mysql może używać tylko jednego indeksu, ale z pewnością wydaje się mądrym pomysłem na zdobycie wszystkich artykułów, które napisał konkretny autor przed pełnotekstowym wyszukiwaniem terminu ... więc czy istnieje pomoc dla mysql?

na przykład .. jeśli wykonałeś samodzielne połączenie?

select articles.* from articles as acopy 
                  join articles on acopy.author_id = articles.author_id 
where 
    articles.author_id = 54 
and match(article_text) against ('foo');

Wyjaśnienie dla tego zawiera najpierw użycie indeksu author_id, a następnie wyszukiwanie pełnotekstowe.

czy to oznacza, że ​​w rzeczywistości tylko wyszukiwanie pełnotekstowe w ograniczonym zestawie jest filtrowane przez author_id?

UZUPEŁNIENIE

wyjaśnij plan dla siebie łącz w następujący sposób:

*************************** 1. row ***************************
           id: 1
  select_type: SIMPLE
        table: acopy
         type: ref
possible_keys: index_articles_on_author_id
          key: index_articles_on_author_id
      key_len: 5
          ref: const
         rows: 20
     filtered: 100.00
        Extra: Using where; Using index
*************************** 2. row ***************************
           id: 1
  select_type: SIMPLE
        table: articles
         type: fulltext
possible_keys: index_articles_on_author_id,fulltext_articles
          key: fulltext_articles
      key_len: 0
          ref: 
         rows: 1
     filtered: 100.00
        Extra: Using where
2 rows in set (0.00 sec)

questionAnswers(1)

yourAnswerToTheQuestion