优化 `LIKE` 子句的模糊查询性能(使用 `FULLTEXT` 或其他方案)

好嘞!各位观众老爷们,今天咱们来聊聊数据库里让人又爱又恨的 LIKE 语句。你说它爱吧,模糊查询确实方便,想搜点啥,糊里糊涂输个大概也能找到;你说它恨吧,那性能,简直能把你的服务器CPU烧成火箭🚀,让用户体验跌到谷底! 所以,今天咱们就来好好解剖一下 LIKE 语句,看看怎么让它从“拖油瓶”变成“冲锋陷阵的悍将”。 一、LIKE 语句:甜蜜的毒药? 首先,咱们得承认,LIKE 语句本身没啥错,错的是我们用错了地方。它就像美味的巧克力蛋糕,偶尔吃一块,心情舒畅;天天当饭吃,那身材可就走样了。 咱们先来回顾一下 LIKE 语句的基本用法: SELECT * FROM products WHERE product_name LIKE ‘%苹果%’; 这条语句的意思是:在 products 表里,找到所有 product_name 包含“苹果”的记录。 看起来很简单,对吧?但是,问题就出在那个 % 百分号上。 %string%:全模糊匹配 这就像你拿着放大镜,在整个数据库里地毯式搜索,效率可想而知。 string%:前缀匹配 稍微好一点,至少能利用索引,但如果 string 很短,或者索引区分 …