2016年4月29日 星期五

MySQL備忘 ... CREATE TEMPORARY TABLE


■    Temporary Table語法 
CREATE TEMPORARY TABLE tmp_name (
        id int(10) NOT NULL ,
        name VARCHAR(10) NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8;

建立Temppry Table:
        也可使用ENGINE = MEMBORY來做儲存.

■    使用說明 
◎    建立Temporary Table僅有該連線可使用,其它連線無法使用(table不存在,table內資料也查詢不到)
◎    不同的連線,可建立相同名稱的temporary Table!
◎    Show Tables看不到Temporary table出現
◎    可使用index / PK / Unique

■    應用 
◎    Session如果是以資料庫儲存的,可用temporary table來作儲存,登出後此table就drop。
◎    購物車的暫存機置,如無需保存到下次登入,可用Temporary table。
◎    大量資料的子集處理
在大的資料量下讓資料庫不斷的排序搜尋,非常影響資料庫效能的,這時可以建立小的temporary table
用複合語法來建立的資 料,例如將:
insert into tmp_data (data_id , data_name)
select data_id , data_name from data where data_id >1000 ;

◎    跨Table的合併資料查詢處理
以往對於跨table的索引方式,例如有CUSTOMER_A和CUSTOMER_B兩個table都有NAME和TIME欄位,如果要查詢NAME並用TIME排序也可用! 

沒有留言: