图片你有这样的应用程序:1 个 DB 表,几个 int 字段,几个小的 varchar 字段,和大约 10 个 TEXT 字段(内容变量 - 一些数据大约 50 个字符长,大多数大约 100-200,一些大约 1000,很少超过1000)。行数在 x0 000 - x00 000 中。现在,我需要像这样查询的有效方法(元语言):
SELECT (1 if textfield1 LIKE %param1% ELSE 0) as r1,(1 if textfield2 LIKE %param2% ELSE 0) as r2, ... 等,对于 1 个查询中的大多数文本字段通常(它是动态的 - 可能包括其中 2 个,可能是全部)。
现在的问题 - MySQL 或 MSSQL 对我来说哪个更好(可能会表达,如果真的需要升级到完整版本)?
我知道 MySQL 有很好的文本索引,你已经设置了自定义的第一个字符数,所以我可以在典型场景中平衡它(像这样: http: //fernandoipar.com/2009/08/12/indexing-text -columns-in-mysql/ )
MSSQL 只有全文索引,我没有经验。请注意,我不需要诸如单词接近或类似单词之类的功能(运行 = 运行;一些词干会很好,但因为数据是多语言的,所以无论如何都是不可能的)。我只需要普通的 LIKE %word% 系统,仅此而已。而且我还必须能够找到短子字符串(2个字符)。
实际上,目标是每小时/每天运行尽可能多的这些查询(不会有足够的结果,永远不会,因为它们应该尽可能频繁地刷新),所以将这种效率视为要求:)
谢谢!
更新:显然没有办法使用索引来优化 LIKE %foo% 查询。所以新的问题是:有没有其他方法可以加快这种类型的查询?(请省略“购买更多内存或 SSD”之类的内容:)