同样的功能,不同的写法,时间和内存占用差了几千倍,不废话,直接上代码

第一种写法:

代码如下:

$Rs=DB::get($_ENV['DB'],3,"SELECT * FROM _xiazhu WHERE uid IN(SELECT id FROM _user WHERE id<5000)");
var_dump($Rs);

内存和时间:

内存使用:96514.53Kb 运行时间:1272.73ms

第二种写法:

代码如下:

$Sql='';
$Rs=DB::get($_ENV['DB'],3,"SELECT id FROM _user WHERE id<5000");
$Sql.=(count($Rs)>0) ? " AND id IN(".strtr(json_encode($Rs,JSON_UNESCAPED_UNICODE),array('{"id":"'=>'','"}'=>'','['=>'',']'=>'')).')' : '';
unset($Rs); $Rs=DB::get($_ENV['DB'],3,"SELECT * FROM _xiazhu WHERE 1=1{$Sql}");
var_dump($Rs);
unset($Sql);

内存和时间:

内存使用:9.77Kb 运行时间:11.97ms

由此可見,如果你不急于追赶开发进度的话,建议你使用第二种方法分开写,速度会有明显的差异.

MYSQL的联合查询最好是少用,效能差异巨大的更多相关文章

  1. Mysql的联合查询

    联合查询 union联合查询 语法:     select 语句 union [all|distinct] select 语句; 示例: 特点:     条件:两表的查询出来的字段数目必须相同     ...

  2. mysql中联合查询

    联合查询union 一个翻译问题的解释: 在mysql的手册中,将连接查询(Join)翻译为联合查询: 而联合查询(union),没有明确翻译. 但: 在通常的书籍或文章中,join被翻译为“连接”查 ...

  3. php+mysql数据库联合查询 left join 右侧数据重复问题

    情况:多表联合查询(三表及以上联合查询) 分析: A left join B left join C left join D 假如: 表B.C.D都与表A关联查询 A left join B 4条数据 ...

  4. MySQL 中联合查询效率分析

    目前我有两个表,一个keywords和一个news表.keyword存放关键词是从news中提取,通newsid进行关联,两表关系如图: keywords中存有20万条数据,news中有2万条数据,现 ...

  5. mysql及联合查询

    SQL语句分类 DDL 数据库定义语言 定义数据库对象 create alter truncate drop TPL 事务处理语言 rollback commit DCL 数据控制语言 由 GRANT ...

  6. mysql三表联合查询,结果集合并

    参考: mysql 结果集去重复值并合并成一行 SQL 三表联查 数据库三表连接查询怎么做 合并: MySQL中group_concat函数 完整的语法如下: group_concat([DISTIN ...

  7. mysql:联合查询

    SELECT t1.name, t2.salary  FROM employee AS t1 INNER JOIN info AS t2 ON t1.name = t2.name; 可以对数据表使用别 ...

  8. thinkphp 使用原生mysql语句 联合查询

    <?php class DelAction extends Action { public function ml(){ // 实例化一个空模型,没有对应任何数据表 $Dao = M(); // ...

  9. mysql三表联合查询

    -- SELECT d.userId, d.userPhoNum, a.orderId, a.productType, b.courseId, b.courseName, c.payJe -- FRO ...

随机推荐

  1. loadrunner下的putty和plink

    loadrunner中是有集成plink和putty的,难怪可以通过监控机监控linux上的负载情况呢,可以通过这个命令来进行访问:C:\Program Files\Mercury\LoadRunne ...

  2. IntelliJ IDEA安装bower

    安装nodejs(x64) https://nodejs.org/en/ 设置环境变量 变量名 NODE_PATH 变量值 C:\Program Files\nodejs\node_modules p ...

  3. day11 装饰器---函数的使用方法

    这个是一个难点,以后面试会经常出现的,要搞懂! 装饰器升级版,进阶内容1: def outer(flag): def wrapper(func): def inner(*args,**kwargs): ...

  4. oracle中计算百分比,并同时解决小数点前0不显示的问题

    select a.catalog_name,decode(substr(trunc((a.s/b.count2),4)*100||'%',0,1),'.',replace(trunc((a.s/b.c ...

  5. 总结sql中in和as的用法

    as有两个用法 1 query时,用来返回重新指定的值 example : select id as systemId from user: 2用来copy另外一张表的所有数据 example:cre ...

  6. ceil()函数的应用-hdu1065

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1065 题目描述: floor(x)  is the largest integer not great ...

  7. ContentProvider工作原理

    --摘自<android插件化开发指南> 1.系统管理类app,比如手机助手,有机会频繁使用ContentProvider 2.通讯录或者短信数据,是以ContentProvider的形式 ...

  8. Addition Chains POJ - 2248 (bfs / dfs / 迭代加深)

    An addition chain for n is an integer sequence <a0, a1,a2,...,am=""> with the follow ...

  9. 牛客练习赛A 【BFS】

    <题目链接> 题目大意: 给出一张图,问你其中 ' # ' 加上那些不能够到达边界的 ' . ' 的点的个数,' # ' 会起阻挡作用. 解题分析: 本题很好做,无非就是将所有能够由边界上 ...

  10. Python Pexpect库的简单使用

    Python Pexpect库的使用 简介 最近需要远程操作一个服务器并执行该服务器上的一个python脚本,查到可以使用Pexpect这个库.记录一下. 什么是Pexpect?Pexpect能够产生 ...