2014-03-03 58 views
-1

我創建了一個臨時表。然後使用連接語句將數據插入到表中。然後,我檢索要從表中列出的值。這個臨時表是否有更好的性能,使用這種方法是個好主意嗎?在mysql中使用臨時表

$tmp_table = mysql_query("CREATE TEMPORARY TABLE temp_table (id int NOT NULL,name varchar(255),address varchar(255))"); 
    $insert_query = mysql_query("INSERT INTO temp_table(id,name,address) SELECT a.id,a.name,b.address FROM table1 a INNER JOIN table2 b ON a.id=b.id"); 
    $select_query = mysql_query("SELECT * FROM temp_table"); 
    while($row = mysql_fetch_array($select_query)){ 
     echo $row['id']; 
     echo $row['name']; 
     echo $row['address']; 
    } 
+3

爲什麼不使用視圖?或只是一個查詢? –

+0

如果我們使用臨時表,它們將在當前客戶端會話終止時被刪除 – abinaya

+0

該查詢似乎並不需要臨時表。 –

回答

1

不!完全不是,而是使用原始查詢更好,更少的開銷。

使用臨時表,如果你獲取包含大量普通 幾個數據結果集,它可以使感得到具有的需要的所有 數據的單個結果集,將其存儲在一個臨時表,然後根據需要從此臨時表中選擇 。類似地,當重複引用表格數據的相同子集時,經常將結果存儲在臨時表格中而非經濟地將結果存儲在臨時表格中,而不是幾次重複複雜連接。