我正在使用django应用程序,该应用程序执行一些“ startswith”ORM操作,将longtext列与unicode字符串进行比较。这将导致LIKE BINARY使用u'mystring'unicode字符串进行比较操作。LIKE BINARY可能会比普通LIKE慢吗?
longtext
LIKE BINARY
u'mystring'
我知道一般的答案是基准测试,但是我想对数据库有一个总体的了解,而不仅仅是我的应用程序,因为我以前从未见过LIKE BINARY查询。
我碰巧正在使用MySQL,但我总体上对SQL数据库的答案感兴趣。
如果性能似乎成为问题,那么创建第一个例如的副本 可能 是一个好主意。长文本的255个字符,在该文本上添加索引,然后将其startswith与该文本一起使用。
startswith
顺便说一句,该页面说:“如果需要进行区分大小写的匹配,则将您的列声明为BINARY;不要在查询中使用LIKE BINARY来强制转换非二进制列。如果这样做,MySQL将不会使用任何该列上的索引。” 这是一个古老的技巧,但我认为这仍然有效。