国产探花免费观看_亚洲丰满少妇自慰呻吟_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 語句.
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表

圖片精選

主站蜘蛛池模板: 自治县| 南靖县| 鱼台县| 晋宁县| 渑池县| 苏尼特左旗| 托克托县| 琼海市| 辽阳县| 定结县| 平安县| 上饶县| 霍林郭勒市| 遂宁市| 汉沽区| 普兰店市| 绥芬河市| 雷山县| 临高县| 桐乡市| 句容市| 枝江市| 鄢陵县| 莲花县| 康定县| 敦化市| 卢氏县| 昭苏县| 鄂托克旗| 江西省| 利津县| 阳信县| 仁寿县| 高青县| 阿勒泰市| 瑞丽市| 绥化市| 道孚县| 营山县| 琼海市| 黄石市|