Mysql 如何对姓名/标题进行前缀搜索

Mysql 如何对姓名/标题进行前缀搜索,mysql,mariadb,Mysql,Mariadb,假设我有一个users表,其中包含uid和name字段。如何高效地对名称中的所有单词进行前缀匹配(用于自动完成) 我可以从用户名为“%spek%”的用户中选择uid,但这似乎不是很有效(而且我必须为所有名称预先加一个空格) 我不能简单地使用“%spek%”,因为名称或标题可能由多个单词组成。 输入“olaf spek”还应与名称“olaf van der spek”匹配 该表可能有500000行。 空格技巧假设单词被空格分隔。我认为一个简单的优化方法是有一个只包含单词的表(例如“van”、“de

假设我有一个users表,其中包含uid和name字段。如何高效地对名称中的所有单词进行前缀匹配(用于自动完成)

我可以
从用户名为“%spek%”的用户中选择uid,但这似乎不是很有效(而且我必须为所有名称预先加一个空格)

我不能简单地使用“%spek%”,因为名称或标题可能由多个单词组成。 输入“olaf spek”还应与名称“olaf van der spek”匹配

该表可能有500000行。
空格技巧假设单词被空格分隔。

我认为一个简单的优化方法是有一个只包含单词的表(例如“van”、“der”、“spek”)和一个将单词表链接到完整句子表的表(“olaf van der spek”)。然后,您将只在单词表中搜索匹配项,并在匹配后检索链接到此匹配项的完整句子。。为什么不使用全文索引?@GeorgRichter它不进行前缀搜索,“Geo”与“Georg”不匹配。但它确实:
反对('Geo*')