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排序也可用! 

沒有留言: