mysql连接查询和in的效率取舍
来源:互联网 发布:夏一行 c语言 编辑:程序博客网 时间:2024/06/15 22:35
例如:
A表
id 子id 父id
1 3 2
2 5 2
3 4 3
B表
id name
3 xxx
-此计时函数转于某大虾
A表
id 子id 父id
1 3 2
2 5 2
3 4 3
B表
id name
3 xxx
5 xxx
首先我要得到a表父id为2的项
在用获得的子id去查B表
连接查询:select name from A right join B on A.子id =B.id where A.父id='2' 运算时间为:0.562ms
in嵌套查询:select name from B where id in(select A字id from A where A父id=2)运算时间为:0.441ms
相比之下发现in效率更优于连接查询,其实不然我们在来看二句语句连接查询mysql只会执行一次查询,而in会执行2次查询,1句查询和2句差距耗时这就不用比了吧。
结论:in适合小数据量,连接查询大数据量更优,应用时更因该相对玉当下场景来选择。
附上sql语句运算时间计算方法:
//计时开始
runtime();
//执行查询
mysql_query(
$sql
);
//计时结束.
echo
runtime(1);
//计时函数
function
runtime(
$mode
=0) {
static
$t
;
if
(!
$mode
) {
$t
= microtime();
return
;
}
$t1
= microtime();
list(
$m0
,
$s0
) = split(
" "
,
$t
);
list(
$m1
,
$s1
) = split(
" "
,
$t1
);
return
sprintf(
"%.3f ms"
,(
$s1
+
$m1
-
$s0
-
$m0
)*1000);
}
0 0
- mysql连接查询和in的效率取舍
- Mysql查询in和exists的效率
- mysql in 和exists查询效率总结
- in子查询、exists子查询、连接,效率的探讨
- in子查询、exists子查询、连接,效率的探讨
- 浅谈数据库设计冗余和效率的取舍
- 请教下关于For循环和mysql的IN查询哪种效率高一些?
- mysql exists 和 in的效率比较
- mysql exists 和 in的效率比较
- mysql exists 和 in的效率比较
- mysql exists和in的效率比较
- mysql in和exists的效率
- MySQL exists 和 in的效率比较
- mysql exists 和 in的效率比较
- mysql exists 和 in的效率比较
- mysql exists 和 in的效率比较
- mysql in子查询执行效率慢的解决方法
- mysql 实战 or、in与union all 的查询效率
- 程序中使用backtrace打印调用栈
- java集合:二叉树
- 装载GPSspg Api
- Java 抽象类
- hdoj1421搬寝室
- mysql连接查询和in的效率取舍
- java 实现快速排序法
- 期末考计划
- linux环境下gsoap调用过程中的超时设置
- MySQLdb模块用法
- 从枚举值获取对应的文本描述
- React Native-2.CSS布局属性之伸缩项目属性
- fast-serialization 使用
- expandableListView 自定义样式以及scrollerView嵌套