我的应用程序将为“听起来像”给定类型名称的英文名称提供建议列表。
查询将需要优化并尽快返回结果。哪个选项最适合快速返回结果。(或者你自己的建议,如果你有的话)
A. 生成 Soundex 哈希并将其存储在“名称”表中,然后执行以下操作:(这样可以节省每次查询至少为我的数据库中的每一行生成 soundex 哈希,对吗?)
从 NameSoundex = Soundex('Ann') 的名称中选择名称
B. 使用差异函数(这必须为表中的每个名称生成 soundex?)
从差异(名称,'Ann')> = 3的名称中选择名称
C. 简单比较
从名称中选择名称其中 Soundex(name) = Soundex('Ann')
选项 A 在我看来是最快的返回结果,因为它只为一个字符串生成 Soundex,然后与索引列“NameSoundex”进行比较
选项 B 应该比选项 A 提供更多结果,因为名称不必与 soundex 完全匹配,但可能会更慢
假设我的表可以包含数百万行,什么会产生最好的结果?