sql >> Databáze >  >> RDS >> Mysql

Co je fulltextový index a kdy jej mám použít?

V databázích se indexy obvykle používají ke zvýšení výkonu při hledání něčeho definovaného ve vaší klauzuli where. Nicméně pokud jde o filtrování nějakého textu, např. pomocí něčeho jako WHERE TextColumn LIKE '%searchstring%' pak je vyhledávání pomalé, protože způsob, jakým fungují běžné databázové indexy, je optimalizován pro shodu s „celým obsahem“ sloupce, nikoli pouze s jeho částí. Konkrétně vyhledávání LIKE, které obsahuje zástupné znaky, nemůže používat žádný druh indexu.

Jak je uvedeno v komentáři níže, MySQL potřebuje MATCH () ... AGAINST syntaxe pro vyhledávání v rámci fulltextového indexu; BTW to se liší v závislosti na prodejci databáze. V MS SQL můžete použít CONTAINS mějte to na paměti, když plánujete podporovat i jiné databáze.

Fulltextové indexy fungují lépe pro běžný text, protože jsou optimalizovány pro tento typ sloupců. Velmi zjednodušeně:Rozdělí text na slova a vytvoří rejstřík přes slova, nikoli celý text. To funguje mnohem rychleji pro textové vyhledávání při hledání konkrétních slov.



  1. Připojte se k MySQL pomocí JDBC přes síť

  2. Jak vrátit všechna zakázaná omezení CHECK v SQL Server (příklad T-SQL)

  3. Proč jen statistika čekání nestačí

  4. MySQL:Rozdělení velké tabulky na oddíly nebo samostatné tabulky?