MYSQL的聯合查詢最好是少用,效能差異巨大

2021-09-07 13:22:08 字數 658 閱讀 9793

同樣的功能,不同的寫法,時間和記憶體占用差了幾千倍,不廢話,直接上**

第一種寫法:

**如下:

$rs=db::get($_env['db'],3,"select * from _xiazhu where uid in(select id from _user where id<5000)");

var_dump($rs);

第二種寫法:

**如下:

$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(''=>'','['=>'',']'=>'')).')' : '';

unset($rs);

$rs=db::get($_env['db'],3,"select * from _xiazhu where 1=1");

var_dump($rs);

unset($sql);

由此可見,如果你不急於追趕開發進度的話,建議你使用第二種方法分開寫,速度會有明顯的差異.

MYSQL的聯合查詢最好是少用,效能差異巨大

同樣的功能,不同的寫法,時間和記憶體占用差了幾千倍,不廢話,直接上 第一種寫法 如下 rs db get env db 3,select from xiazhu where uid in select id from user where id 5000 var dump rs 第二種寫法 如下 s...

mysql聯合查詢

有乙個前提很重要 就是兩個表中的對應字段應該是建立聯合關係且該鍵應唯一 在查詢該聯合建的時候要指明 表.欄位 1.select from 表a,表a子表 where表a.filecode 表a子表.filecodeand表a.id in select 表a子表 id from 表a子表 where ...

MySQL聯合查詢

1.select test.name,test2.name2 from test left join test2 on test.id test2.id 2.select test.name,test2.name2 from test right join test2 on test.id test...