当前位置:首页 > 日记 > 正文

MySQL查询优化:连接查询排序限制(连接,按顺序,限制语句)

MySQL查询优化:连接查询排序限制(连接,按顺序,限制语句)
我不知道是否有人遇到这样的恶心问题:两个表连接查询和限制,SQL是高效的,但顺序,句子的执行时间是巨大的和低效的。

是这样的:现在有两个表,表和表的团队的人,每个人都属于一个团队,有人一场team_id。
给出了以下语句:
复制代码代码如下所示:
创建表t_team

主键,
Tname varchar(100)
);
创建表t_people

主键,
Pname varchar(100),
team_id int,
外键(team_id)参考t_team(ID)
);

接下来,我要连接两个表查询的前10人,并将他们分类的tname。
所以,一个SQL语句出生:SELECT * FROM t_people P左连接t_team T p.team_id = t.id阶10;{语句}
这是写SQL我第一反应,很容易理解的,也是大多数人的第一反应,然后测试语句的执行时间,要做的第一件事是准备数据。我使用存储过程来生成1000个数据表,在t_team在t_people表生成的数据(100000。存储过程在本文最后)
在其中执行SQL语句好几次,大约需要3秒。

然后更改两个语句进行比较:
1。的条款删除命令:SELECT * FROM t_people P左连接t_team T p.team_id = t.id;{ 2 }声明
忽略0秒。

2。仍然使用顺序,但删除连接t_team表:SELECT * FROM t_people p阶的p.pname极限10;{ 3 }声明
大约需要0.15秒。
人们发现该声明的效率很低。
为什么效率这么低{ } }和{声明(声明声明(声明} }执行速度非常快,{ 1 }声明仅仅是两者的结合。如果你先执行10人的结果进行排序,然后连接查询团队的每个人,而且效率不会这么低,那么只有一种解释:MySQL执行连接查询,然后整理一遍。
解决方法:如果你想提高效率,你需要修改SQL语句让MySQL第一10连接查询排序。

SQL语句:
SELECT * FROM(SELECT * FROM t_people p阶的p.pname极限10){ 4 }声明P左;
{ 4 }和{ }句句子的功能,虽然子查询,尽管他们似乎很尴尬,他们是更有效的,和它们的执行时间仅为0.16秒,这是20倍,高于此前的声明(耗时3秒)。
如果遇到复杂的表结构,这两个表的结构非常简单,我在实际开发中遇到了这样一个问题,它在{ }的方式中花费了80多秒,但是使用{语句}只需要1秒。

最后给出了数据制作的存储过程。
复制代码代码如下所示:
创建程序生成数据()
开始
声明int;
开始交易;
设置i=0;
当我1000岁时
插入t_team值(I + 1,concat(团队',我+ 1));
设置i = i + 1;
结束的时候;
设置i=0;
当我100000岁时
插入t_people值(I + 1,concat(人',我+ 1),我为1000 + 1);
设置i = i + 1;
结束的时候;
承诺;
结束

相关文章

linux基础与linux应用系统通用技术

linux基础与linux应用系统通用技术

通用,系统,基础,技术,电脑软件,点评:Linux的基本知识,包括处理特殊的文件名,恢复Linux超级用户密码,安装Linux直接启动Linux系统,迅速消除XWindows的停机现象,并迅速关闭Linux系统。 1。处理特殊文件名 假设Linux系统有一个文件名为- aaa,如果我…

谷歌驱动云存储服务大幅减少

谷歌驱动云存储服务大幅减少

服务,云存储,大幅,电脑软件,{ }北京时间3月14日消息,谷歌今日大幅降低云存储服务谷歌驱动器的价格,并对竞争对手施加压力,如微软OneDrive和Dropbox。 据悉,了100Gb存储空间的费用从4.99美元降为每月1.99美元1TB从49.99美元降至40.in之外,谷歌还…

PHP输出XML到页面的3种方法

PHP输出XML到页面的3种方法

输出,种方法,页面,电脑软件,PHP,第一种方法: 复制代码代码如下所示: 页眉(内容类型:文本); ; ; ; ; 回声小菜鸟; ; ; 24; ; ; 回声男性; ; ; ; ; 红色回声; ; ; 23; ; ; 回声女人; ; ; ; > 第二方法: 复制代码代码如下所示: 页眉(内容类型:文本); ; 24男23女小菜鸟; > 第三方法…

如何设置ADSL拨号连接solaris10

如何设置ADSL拨号连接solaris10

如何设置,拨号连接,电脑软件,ADSL,评论:我安装VMware solaris10 x86。注意:设置虚拟网卡的时候,你必须建立一个桥接模式,或者即使拨号设置是正确的,你不能连接网络的网络。 1。设置本地网卡IP地址、子网掩码和DNS需要修改和构建的配置文件: # VI…

fsscrctl.exe的功能是什么该fsscrc

fsscrctl.exe的功能是什么该fsscrc

查询,功能,过程,电脑软件,fsscrctl,点评:fsscrctl.exe是星尘屏幕保护工具相关程序 进程文件:fsscrctl或fsscrctl.exe 进程名称:fsscrctl 过程类别:安全风险的过程 英文描述: fsscrctl.exe是提供一个屏幕保护程序,控制程序的过程中,它也被称为以…

oracle表空间中空表统计方法的实例

oracle表空间中空表统计方法的实例

表空间,统计,实例方法,方法,电脑软件,复制代码代码如下所示: 声明 v_table标签。table_name分型; v_sql VARCHAR2(888); v_q数; 光标C1 选择table_name TN从标签; 类型是游标; C2 C; 开始 dbms_output.put_line('below是名称的空数据表:'); 对于C1环中…

进程连接Oracle代码

进程连接Oracle代码

连接,进程,代码,电脑软件,Oracle,复制代码代码如下所示: Int connectDb() { 开始声明部分; char用户名{ 20 }; 字符密码{ 20 }; 焦connect_string { 20 }; SQL结束声明部分; Strcpy(用户名,lbc1 ); Strcpy(密码,lbtux ); Strcpy(connect_string,lbc1 ); EXECS…

Win8.1完全关闭软件窗口的方法(技术

Win8.1完全关闭软件窗口的方法(技术

方法,窗口,技术,电脑软件,问题: 在应用程序窗口中获得8.1,在窗口顶部的手指,可以从窗户上划关闭应用程序窗口,但没有完全关闭,在任务管理器中仍然可以发现,也可以切换,这是不是与Win8相同。因此如何关闭应用程序窗口完全Win8.1呢 答案uff1a 完全…

邮箱不接收身份验证邮件(解决方案)

邮箱不接收身份验证邮件(解决方案)

邮件,解决方案,身份验证,邮箱,不接收,问题: 最近,一个帐户已经注册在一个论坛上。它需要使用邮箱接收验证码,填写常用的QQ邮箱,再试几次,找出收件箱中不可用的验证邮件,在此之前,使用这个QQ邮箱接收验证邮件也是正常的。我不知道这次该怎么办。 …

Oracle数据库是建立在客户端的dbli

Oracle数据库是建立在客户端的dbli

数据库,语法,客户端,电脑软件,Oracle,当Oracle服务器不建立目标数据库的dblink TNS,语法是在客户端设置(与特权)如下: 复制代码代码如下所示: 创建数据库链接dblink_name连接user_name user_psw使用确定的 (描述=) (address_list = = (地址=(协议= TC…

分享卸载MySQL的方法彻底

分享卸载MySQL的方法彻底

卸载,方法,分享,电脑软件,MySQL,它总是重装系统的好方法,但是谁喜欢这么做呢: 后来,这是不可能找到完全卸载,卸载的时候卸下来,和下面的卸载方法卸载完成卸载MySQL 5.1了。 1。删除控制面板并删除删除程序 2、删除my.ini文件mysql文件夹下,如…

搜狗图童剑:如何匹配产品的需求

搜狗图童剑:如何匹配产品的需求

产品,需求,搜狗,电脑软件,图童剑,3月28日,极客公园走进了Sogou 活动现场热闹非凡,会上有很多诸如搜狗输入法、搜狗地图、搜狗号码通等。受欢迎的产品的产品经理分享了很多的产品体验和搜狗的球迷,热情的消费者和从业者来收拾市场。现场干货,句…