最近在寫的專案中,返回周邊列表的儲存過程折磨了我好久,由於排序的幾個欄位都是從其他表來得到的。
終於通過建立乙個額外的記錄表,平時簽到的時候,將相應的記錄做記錄,所以返回周邊列表的時候這些字段可以直接從表中搜尋到,而且用了索引所以很快。
但是還有乙個欄位是實時的,所以要在執行儲存過程的時候來求得。開始準備用乙個臨時表,從乙個表中一次性通過count ..group by來得到所有的字段,並且插入臨時表中,這個操作的確很快,下次取出這些值並以此排序的時候可以直接根據乙個條件從臨時表中得到。 -www.2cto.com-
但是的確還是很慢,用的是heap表。因為臨時表不能建立索引,所以根據條件取值還是比較慢的,如此建立索引表還不如建立乙個真實的表。可以建立臨時表,可以用來儲存全部要用來操作的資料,而不用根據條件去選取記錄來操作。
而建立真實的表一定要注意併發的問題,建議如果時間不長的話,採取鎖表操作來保證操作的一致性。
摘自 kofandlizi的專欄
mysql中的臨時表
建立臨時表很容易,給正常的create table語句加上temporary關鍵字 create temporary table tmp table name varchar 10 not null,value integer not null 臨時表將在你連線mysql期間存在。當你斷開時,mys...
mysql 臨時表 漢字 mysql的臨時表用法
delimiter use qgroupdata drop procedure if exists ex print bg kdd search create definer root procedure ex print bg kdd search where varchar 2000 查詢條件 ...
Oracle的臨時表和MySQL的臨時表
最近在oracle遷移mysql過程中遇到了一些關於with as 語法的問題,但是在mysql中是沒有這樣的語法的,因為我使用了臨時表代替了 因此今天做了一些小總結,歡迎各位大佬指導。一 oracle with as語法 with tablename as select select 它在查詢之前...