使用temporary memory table優化union
sharding聽上去很過癮,但實現成本也挺高的.對于通過按data進行split的表,某些select要用到union,這樣可能導致lock的時間變得很長.使用temporary memory table作為中轉,可以大大減少lock table的時間,使查詢更快.drop temporary table IF EXISTS table_name_tmp;
create temporary table IF NOT EXISTS table_name_tmp (a int not null,b int not null,primary key (a, b)) ENGINE = MEMORY;
insert ignore into table_name_tmp select * from table_name_1 where
;
insert ignore into table_name_tmp select * from table_name_2 where
;
insert ignore into table_name_tmp select * from table_name_3 where
;
insert ignore into table_name_tmp select * from table_name_4 where
;


select * from table_name_tmp where
;
create temporary table IF NOT EXISTS table_name_tmp (a int not null,b int not null,primary key (a, b)) ENGINE = MEMORY;
insert ignore into table_name_tmp select * from table_name_1 where

insert ignore into table_name_tmp select * from table_name_2 where

insert ignore into table_name_tmp select * from table_name_3 where

insert ignore into table_name_tmp select * from table_name_4 where



select * from table_name_tmp where

posted on 2008-06-22 22:27 waterye 閱讀(677) 評論(0) 編輯 收藏 所屬分類: mysql