国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 數據庫 > PostgreSQL > 正文

PostgreSQL7.0手冊-用戶手冊-19. SQL命令-CLUSTER

2019-09-08 23:33:04
字體:
來源:轉載
供稿:網友
CLUSTER
名稱
CLUSTER ― 向服務器給出存儲建簇的建議 
  
語法
CLUSTER indexname ON table
輸入
indexname 
一個索引名稱. 
table 
表的名稱. 
輸出
CLUSTER 
成功建簇. 
ERROR: relation  inherits "table" 
表 tablerelation_number 是從表 "table"繼承來的 
ERROR: Relation table does not exist! 
表 table 不存在 
描述
CLUSTER 指示 Postgres 近似地基于索引 indexname 的度量對表 table 進行存儲建簇.索引必須已經在表 table 上定義了. 
當對一個表建簇后,該表的物理存儲將基于索引信息進行.建簇是靜態的,也就是說,當表被更新后,改變的內容不會建簇.不會試圖對更新過的記錄重新建簇.如果需要,可以通過手工執行該命令的方法重建簇. 

注意
該表實際上按索引順序拷貝到了一個臨時表中,然后重新改成原名.因此,在建簇時所有賦予的權限和其它索引都將丟失. 
如果你只是隨機的訪問表中的行,那么在堆表中的數據的實際存儲順序是無關緊要的.但是,如果你對某些數據的訪問多于其他數據,而且有一個索引將這些數據分組,那你就將從 CLUSTER 中獲益. 

另一個 CLUSTER 很有幫助的例子是當你用索引從一個表中取出幾個記錄時.如果你從一個表中請求一定索引范圍的值,或者是一個索引過的值對應多行,CLUSTER 也會有助于應用,因為如果索引標識出第一匹配行所在的堆存儲頁,所有其他行也可能已經在同一堆存儲頁里了,這樣便節省了磁盤訪問的時間,加速了查詢. 

有兩種建簇的數據.第一種是用 CLUSTER 命令,此命令將原表按你聲明的索引重新排列.這個動作在操作大表時可能會很慢,因為每一行都從堆存儲頁里按索引順序取出,如果存儲頁表沒有排序,整個表是隨機存放在各個頁面的,因而每行都要進行依次磁盤頁面操作.Postgres 有一個緩沖,但一個大表的主體是不可能都放到緩沖去的. 

另一個對數據建簇的方法是使用 

SELECT columnlist INTO TABLE newtable
     FROM table ORDER BY columnlist
這個用法使用 Postgres 排序的代碼 ORDER BY 來匹配索引,在對未排序的數據操作時速度快得多.然后你可以刪除舊表,用 ALTER TABLE/RENAME 將 temp 改成舊表名,并且重建所有索引.唯一的問題是 OID 將不保留.這時再做 CLUSTER 將快得多,因為大多數堆棧數據已經排過序了而且使用現有的索引. 
用法
以雇員的薪水屬性對雇員關系建簇. 
CLUSTER emp_ind ON emp;
兼容性
SQL92
在 SQL92 規范里沒有 CLUSTER 語句.
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表

圖片精選

主站蜘蛛池模板: 三门峡市| 襄樊市| 化德县| 福鼎市| 唐山市| 罗城| 赞皇县| 胶州市| 梅河口市| 沂南县| 五原县| 五原县| 石景山区| 凤阳县| 安福县| 安福县| 于田县| 永登县| 个旧市| 沙洋县| 丰台区| 青河县| 东平县| 安泽县| 洛川县| 建阳市| 和田县| 富裕县| 全南县| 汝州市| 潞城市| 金门县| 平南县| 丘北县| 潼南县| 原阳县| 社会| 桂林市| 泰安市| 子洲县| 会理县|