我正在使用嵌套查詢從多個表中檢索信息。我需要關於優化這個php代碼的建議。如何優化嵌套查詢的數據庫連接?
該函數創建一個對象。
public function conn($query){
$mysqli = new mysqli('test','test','test','test');
$result = $mysqli->query("SET NAMES utf8");
$result = $mysqli->query("set character_set_client='utf8'");
$result = $mysqli->query("set collation_connection='utf8_general_ci'");
$result = $mysqli->query($query);
$mysqli->close();
return $result;
}
此代碼使用該函數。
$connect = $this->conn("SELECT * FROM Table LIMIT 100000");
while($i = $connect->fetch_assoc()){
$name = $i["name"];
$connect2 = $this->conn("SELECT * FROM Names WHERE Name = '$name'");
if($connect2 ->num_rows > 0){
echo $name.'<br>';
}
}
需要建議連接到數據庫。
在while
循環中,如您所見,我正在檢查其他表中是否存在$name
。但是我每次都通過循環打開和關閉連接。這將是100001連接打開和關閉。
是否有可能打開到數據庫的連接只有一次?
P.S:該SQL是一個例子 - 請不要有暗示的變化,因爲我試圖找出如何處理重複的查詢,不能優化SQL。
您需要JOIN和GROUP BY。 – 2015-02-05 12:51:35
@SergioTulentsev不,不是。正如我寫在'p.s .: sql編寫例如 - 請不要編輯這個SQL查詢因爲需要建議只連接到數據庫.'即需要建議只用於連接(不查詢)。 – Brown 2015-02-05 12:53:09
祝你好運,然後:) – 2015-02-05 12:54:25