JOIN优化
博主今天为大家带来JOIN的优化以及如何查询%name%或like %name%更为有效,只有少部分,有待补充提高,如有更好地建议,欢饮讨论!
前言:
为什么要优化JOIN!为什么谈到如何查询%name%或like %name%!在下述博文中,博主将为大家带来一点建议,希望又有,如有补充或者异议,欢迎讨论!
进入正题:
如何优化JOIN:
请跳转我的这篇文章《MySql系列(三):JOIN的原理和算法》,找出驱动表和被驱动表,在被驱动表上建立索引,即可提高连接性能。
如何查询%name%或like %name%:
如下图所示,虽然给secret字段添加了索引,但在explain结果并没有使用:
- 那么如何解决这个问题呢,答案:使用全文索引。
// 在我们查询中经常会用到这样的语句,普通索引是无法满足查询需求的。
SELECT XXX FROM XXX WHERE user_name like '%zhangsan%'; 。
- 庆幸的是在MySQL中,有全文索引来帮助我们。
- 创建全文索引的SQL语法是:
ALTER TABLE `要创建索引的表名` ADD FULLTEXT INDEX `要添加索引的字段` (`user_name`);
- 使用全文索引的SQL语句是:
SELECT XXX FROM XXX WHERE match(user_name) against('zhangsan' in boolean mode);
- 注意:在需要创建全文索引之前,请联系DBA确定能否创建。同时需要注意的是查询语句的写法与普通索引的区别。
最后
喜欢博主的小伙伴可以加个关注、点个赞哦,持续更新嘿嘿!