原生sql join 优化之instr

首先,我先说明一下,我是一个php开发项目的菜鸟,以下都是个人拙见,有写得不对的地方,还望大家指正。

那我们直接进入正题,在项目开发中,发现对于数据量大的数据表,搜索优化是一个头疼的事情,特别是商品类型的数据,多表联查(至少一般都是4,5张表联查),尤为更甚。

可能,有些人会说,某某框架优化的很好了,为什么还有用原生的sql语句查询?确实,很多框架在这个方面,都很注重,也为开发者们,提供了很多便捷的方法,但是,事实告诉我们,用框自带的方法对于数据量小的项目,还是很有用的,快捷又方便,不用去担心,搜索或者加载速度的影响(例如:一个小型的博客之类的项目),对于动辄百万级的数据,往往框架自带的方法就捉襟见肘了。

所以,我们这个时候就要太依赖框架了(说个题外话,不论框架怎么变化,优化地多么优秀,都是万变不离其宗,原生才是真爱 0 。0)。

  • instr
    instr函数对某个字符串进行判断,判断其是否含有指定的字符。在一个字符串中查找指定的字符,返回被查找到的指定的字符的位置。

    语法:
    instr(‘源字符串’ , ‘目标字符串’ ,‘开始位置’,‘第几次出现’);

    一般根据项目的需求,去使用sql 函数 instr;在这篇文章中之介绍最基础的使用方法。

    例子:
    首先,我建立两个测试用的数据表:test 和 test2 两张数据表中我都添加了1000条数据(Ps:我只是做个测试,并没有添加百万级的数据);

    使用方法如下:

    select a.* from (select name from test where instr(name,‘xx’)) as a left join (select name from test2 where instr(name,‘xx’) >0 ) as b on a.name = b.name;

    这里还是能看出来,速度还是挺快的(其实还是不太明显,毕竟数据量太少了);

    select a.* from test as a left join test2 as b on a.name = b.name where a.name = b.name;

    速度也不错,特别是在数据量多的时候,首推原生sql。谢谢!

程序员的诗人梦
窈窕淑女

又闻竹林琴音曲,追觅漫漫无处寻。
拨弄弦丝传幽谷,定是佳人抚梧琴。
一缕粉黛千般容,倾城红颜西施羞。

原生Mysql之 join和inst优化r相关推荐

  1. MySQL EXPLAIN详解,left join和in优化详解,以及optimizer_trace跟踪语句使用

    最近优化mybaits的sql语句性能,网上查了查mysql的explain用法,这里记录一下,希望对大家有帮助. EXPLAIN简述: explain为mysql提供语句的执行计划信息.可以应用在s ...

  2. R语言进行dataframe数据内连接(Inner join):使用R原生方法、data.table、dplyr等方案

    R语言进行dataframe数据内连接(Inner join):使用R原生方法.data.table.dplyr等方案 目录 R语言进行dataframe数据内连接(Inner join):使用R原生 ...

  3. R语言进行dataframe数据左连接(Left join):使用R原生方法、data.table、dplyr等方案

    R语言进行dataframe数据左连接(Left join):使用R原生方法.data.table.dplyr等方案 目录 R语言进行dataframe数据左连接(Left join):使用R原生方法 ...

  4. mysql join buffer_MySQL cache之join buffer的优化

    MySQL cache之join buffer的优化 mysql的连接(join)处理只有nest loop一种算法,基本原理是先取第一个表的行,然后再依次 扫描第二个表中的所有行进行匹配,一旦匹配成 ...

  5. 超详细图解!【MySQL进阶篇】SQL优化-索引-存储引擎

    1. Mysql的体系结构概览 整个MySQL Server由以下组成 Connection Pool : 连接池组件 Management Services & Utilities : 管理 ...

  6. 关于mysql中Join语句的几个问题

    本文来说下关于mysql中Join语句的几个问题,JOIN语句在平时的开发中还是使用的非常多的 文章目录 概述 基本介绍 举个例子 一个注意点 Join原理 Simple Nested-Loop In ...

  7. mysql模糊查询之索引优化

    mysql模糊查询之索引优化 三表连查之模糊查询索引优化 注:具体用法10和11步骤. 1.t_project表 DROP TABLE IF EXISTS `t_project`; CREATE TA ...

  8. Mysql Nested-Loop Join算法和MRR

    MySQL8之前仅支持一种join 算法-- nested loop,在 MySQL8 中推出了一种新的算法 hash join,比 nested loop 更加高效.(后面有时间介绍这种join算法 ...

  9. 唠唠MySQL的join

    准备条件: 建个库: create database test; use test; 建立t1,t2两张表,然后在t1插入100行数据,t2插入1000行数据: CREATE TABLE `t2` ( ...

最新文章

  1. [P1363] 幻想迷宫
  2. 百度富文本编辑器UEditor安装配置全过程
  3. [C++11]对模板右尖括号的优化
  4. python windows开发_windows 下 python 开发是一种什么样的体验?
  5. win2003服务器 虚拟主机安全配置
  6. github的gh-pages分支展示项目页面
  7. 【Attention九层塔】注意力机制的九重理解
  8. 洛谷 P2257 YY的GCD
  9. 性能测试工具_K6性能测试工具的使用入门
  10. 计算两个经纬度之间的距离软件_小程序使用腾讯位置服务计算两地之间的距离(有源码)...
  11. 事务管理最佳实践多余的话之二:Transaction后缀给声明式事务管理带来的好处
  12. 639. 解码方法 2
  13. android apk加密技术,android apk 自我保护技术-加密apk
  14. 3.虚幻4-游戏开始界面的制作
  15. 20210729-Codeforces Round #735 (Div. 2)
  16. ESD防护为何对集成电路如此重要?又该如何防护?
  17. 京东网站页面编写(HTML、CSS、JS),包括京东秒杀的倒计时、轮播图等功能
  18. 为Windows 7的winsxs目录瘦身,谨慎。
  19. 计算机是干嘛的不会打字能学吗,不会打字能学护士吗不会使用电脑?
  20. Android下拉列表怎么做?(小白速成7)

热门文章

  1. 华为荣耀平板2_荣耀平板2和荣耀x2哪个值得买?华为荣耀平板2和荣耀x2详细区别对比评测...
  2. 防己黄芪汤五苓散与“渴肿膝痛综合征”
  3. pymysql使用_使用pymysql的AWS Lambda与RDS
  4. BZOJ 3620 似乎在梦中见过的样子 KMP+暴力
  5. python字典推导式_python的各种推导式(列表推导式、字典推导式、集合推导式)...
  6. 上海交大25岁博士奶爸火了!6块腹肌,Science一作,人民日报都点赞了
  7. win10如何打开heic文件
  8. ssm毕设项目美容院管理系统jn8j9(java+VUE+Mybatis+Maven+Mysql+sprnig)
  9. 【python函数】find()函数
  10. 程序员养成架构师之路