數據庫的select幾種方式的優缺點

1、SELECT A.*,B.* FROM table_A A LEFT JOIN table_B b ON B.id = A.id
優點:一次查詢,打開一次數據庫連接,打開數據庫連接比較耗時,耗性能,所以相當於用空間換時間
缺點:是如果兩個表數據多,則中間結果集太大,需要較多的內存資源。

2、 $result = SELECT id FROM table_A;
$data=array();
foreach($result as $res){
$data[]=SELECT * FROM table_B WHERE id = $res[‘id’];
}
優點:
缺點:需要打開多次數據庫連接,關閉數據庫連接,比較耗性能,耗時,比如:數據庫連接池有100個連接的話,這個循環就會佔據很多連接,導致其他人需要重新new
優點:需要對每一次查詢的結果做處理的話,可以增加靈活性
3、$result = SELECT id FROM table_A
$ids = array();
foreach($result as $res){
$ids[]=$res[‘id’];
}
$ids = implode(“,”,$ids):
$data=SELECT * FROM table_B WHERE id IN ($ids);
缺點:in的話,每次都會遍歷一遍ids,效率會很慢,並且in在用子查詢到的時候不支持索引,會進行全表掃描
優點:當數據量非常少,少到不需要使用索引的時候,執行全表掃描的更快





delimiter $$                     #創建一個儲存過程
createprocedure test()
begin
set@a=1;     #學號
while @a<20000 do     #如果@a<2000010001則返回true,繼續執行
insertinto user_core values(@a);
set@a=@a+1;
endwhile;
end$$
delimiter ;

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章