关于 $like = '%'.$search.'%';如果前后都使用%的话,没有索引效果,如果去掉前面的%号,这样会不会更合适一点?

这个问题曾经被面试问到过,后来查百度,如果只在后面%号的话,查询语句会使用到索引

《L01 基础入门》
我们将带你从零开发一个项目并部署到线上,本课程教授 Web 开发中专业、实用的技能,如 Git 工作流、Laravel Mix 前端工作流等。
《G01 Go 实战入门》
从零开始带你一步步开发一个 Go 博客项目,让你在最短的时间内学会使用 Go 进行编码。项目结构很大程度上参考了 Laravel。
leo
最佳答案

我们这里搜索的字段都没有加索引,所以有没有前面的百分号都是一样的。

实际上真实的项目不会这样做商品的搜索,只不过限于篇幅原因这里先简化的了,在下一本进价的书里面我会介绍更专业的搜索方案。

6年前 评论
讨论数量: 7
leo

我们这里搜索的字段都没有加索引,所以有没有前面的百分号都是一样的。

实际上真实的项目不会这样做商品的搜索,只不过限于篇幅原因这里先简化的了,在下一本进价的书里面我会介绍更专业的搜索方案。

6年前 评论
leo

我们这里搜索的字段都没有加索引,所以有没有前面的百分号都是一样的。

实际上真实的项目不会这样做商品的搜索,只不过限于篇幅原因这里先简化的了,在下一本进价的书里面我会介绍更专业的搜索方案。

6年前 评论

@leo 下一本什么时候能出来?

6年前 评论
leo

@lianglunzhong 大概是 8、9 月

6年前 评论

@leo 加油,快写吧,好多人都等着商城的进阶教程呢。辛苦啦。

6年前 评论

你自己可以加上 ES 搜索

6年前 评论

非常期待 mysql 做持久化, es 做搜索支持的进阶课程!

6年前 评论

学习环境基本不用考虑速度问题,表内几百条数据是否使用索引或全表扫描区别不大。

当真正有一定数据量时,不用说like %keyword%,像or也是不能出现的。

最终还是要使用ES

6年前 评论

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!