哪个更好?mysql的LIKE还是REGEXP?

can*_*out 6 mysql ruby-on-rails sql-like

我在一个语句中使用了一个LIKE而不是LIKE的named_scope.与使用REGEXP相比,这在执行方面更快吗?

named_scope :order_search, :order => "name LIKE '%urgent%' AND name NOT LIKE '%not urgent%' DESC, created_at DESC"
Run Code Online (Sandbox Code Playgroud)

fx_*_*fx_ 5

这是几毫秒的差异,不可察觉.除非您处理极高的流量,否则无关紧要.

如果您的方法遇到性能问题,可能是因为您的表有大量行.瓶颈不是那么(而且MySQL也支持REGEXP)但你的表结构.

在任何情况下,您都应该阅读MySQL索引MySQL全文搜索.


Den*_*rdy 2

据我所知,LIKE在这种情况下,MySQL 将使用 Boyer\xe2\x80\x93Moore,因此LIKE.

\n\n

然而,与使用将整个表达式存储在is_urgent字段中的触发器相比,它可以忽略不计。然后您可以在 上添加索引(is_urgent, created_at)

\n