原生Mysql之 join和inst优化r
原生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相关推荐
- MySQL EXPLAIN详解,left join和in优化详解,以及optimizer_trace跟踪语句使用
最近优化mybaits的sql语句性能,网上查了查mysql的explain用法,这里记录一下,希望对大家有帮助. EXPLAIN简述: explain为mysql提供语句的执行计划信息.可以应用在s ...
- R语言进行dataframe数据内连接(Inner join):使用R原生方法、data.table、dplyr等方案
R语言进行dataframe数据内连接(Inner join):使用R原生方法.data.table.dplyr等方案 目录 R语言进行dataframe数据内连接(Inner join):使用R原生 ...
- R语言进行dataframe数据左连接(Left join):使用R原生方法、data.table、dplyr等方案
R语言进行dataframe数据左连接(Left join):使用R原生方法.data.table.dplyr等方案 目录 R语言进行dataframe数据左连接(Left join):使用R原生方法 ...
- mysql join buffer_MySQL cache之join buffer的优化
MySQL cache之join buffer的优化 mysql的连接(join)处理只有nest loop一种算法,基本原理是先取第一个表的行,然后再依次 扫描第二个表中的所有行进行匹配,一旦匹配成 ...
- 超详细图解!【MySQL进阶篇】SQL优化-索引-存储引擎
1. Mysql的体系结构概览 整个MySQL Server由以下组成 Connection Pool : 连接池组件 Management Services & Utilities : 管理 ...
- 关于mysql中Join语句的几个问题
本文来说下关于mysql中Join语句的几个问题,JOIN语句在平时的开发中还是使用的非常多的 文章目录 概述 基本介绍 举个例子 一个注意点 Join原理 Simple Nested-Loop In ...
- mysql模糊查询之索引优化
mysql模糊查询之索引优化 三表连查之模糊查询索引优化 注:具体用法10和11步骤. 1.t_project表 DROP TABLE IF EXISTS `t_project`; CREATE TA ...
- Mysql Nested-Loop Join算法和MRR
MySQL8之前仅支持一种join 算法-- nested loop,在 MySQL8 中推出了一种新的算法 hash join,比 nested loop 更加高效.(后面有时间介绍这种join算法 ...
- 唠唠MySQL的join
准备条件: 建个库: create database test; use test; 建立t1,t2两张表,然后在t1插入100行数据,t2插入1000行数据: CREATE TABLE `t2` ( ...
最新文章
- [P1363] 幻想迷宫
- 百度富文本编辑器UEditor安装配置全过程
- [C++11]对模板右尖括号的优化
- python windows开发_windows 下 python 开发是一种什么样的体验?
- win2003服务器 虚拟主机安全配置
- github的gh-pages分支展示项目页面
- 【Attention九层塔】注意力机制的九重理解
- 洛谷 P2257 YY的GCD
- 性能测试工具_K6性能测试工具的使用入门
- 计算两个经纬度之间的距离软件_小程序使用腾讯位置服务计算两地之间的距离(有源码)...
- 事务管理最佳实践多余的话之二:Transaction后缀给声明式事务管理带来的好处
- 639. 解码方法 2
- android apk加密技术,android apk 自我保护技术-加密apk
- 3.虚幻4-游戏开始界面的制作
- 20210729-Codeforces Round #735 (Div. 2)
- ESD防护为何对集成电路如此重要?又该如何防护?
- 京东网站页面编写(HTML、CSS、JS),包括京东秒杀的倒计时、轮播图等功能
- 为Windows 7的winsxs目录瘦身,谨慎。
- 计算机是干嘛的不会打字能学吗,不会打字能学护士吗不会使用电脑?
- Android下拉列表怎么做?(小白速成7)
热门文章
- 华为荣耀平板2_荣耀平板2和荣耀x2哪个值得买?华为荣耀平板2和荣耀x2详细区别对比评测...
- 防己黄芪汤五苓散与“渴肿膝痛综合征”
- pymysql使用_使用pymysql的AWS Lambda与RDS
- BZOJ 3620 似乎在梦中见过的样子 KMP+暴力
- python字典推导式_python的各种推导式(列表推导式、字典推导式、集合推导式)...
- 上海交大25岁博士奶爸火了!6块腹肌,Science一作,人民日报都点赞了
- win10如何打开heic文件
- ssm毕设项目美容院管理系统jn8j9(java+VUE+Mybatis+Maven+Mysql+sprnig)
- 【python函数】find()函数
- 程序员养成架构师之路