GB | BIG5
|
| 首頁 > 數據庫 > 其它 > 正文 |
 |
| PostgreSQL7.0手冊-程序員手冊 -45. GiST 索引 |
| 編譯:何偉平 laser@zhengmai.com.cn (2001-04-21 23:04:31) |
第四十五章.GiST 索引
關 GIST 的信息在 http://GiST.CS.Berkeley.EDU:8000/gist/ ,有關更多不同索引和排序方法的信息在http://s2k-ftp.CS.Berkeley.EDU:8000/personal/jmh/。並且在伯克利的數據庫站點有更多的有趣的讀物 http://epoch.cs.berkeley.edu:8000/.
作者:這個節選源自一封由 Eugene Selkov Jr。發過來的電子郵件,包含很多關 GiST 的有用信息.希望我們在將來能學習到更多的東西並且對這個信息進行更新.- thomas 1998-03-01
我不能說我對這些東西認識得很深,但至少我(幾乎是)成功的把 GiST 例子移植到 linux 裡.GiST 訪問模式現在已經在 postgres 代碼樹裡(src/backend/access/gist)。
伯克利的例子 裡面有一個該方法的概述並且演示了用 2D 方形,多邊形,整形(時間)間隔和文本(text)的空間的索引機制(參閱 GiST 在伯克利)。在方形的例子裡,我們可以預見到使用 GiST 索引時的性能提升;在我的機器上它的確是這樣的,但是我沒有很多的方形記錄來檢驗它.其他例子同樣工作了,除了多邊形(polygons):我在執行下面命令時收到一個錯誤
test=> create index pix on polytmp
test-> using gist (p:box gist_poly_ops) with (islossy);
ERROR: cannot open pix
(PostgreSQL 6.3 Sun Feb 1 14:57:30 EST 1998)
我沒法理解這個錯誤信息;這好象是某種我們需要和開發者討論的問題(看下面的注釋 4).我的建議是你們這些 linux 的用戶(linux==gcc?)們獲取上面原始的查詢代碼並且打上我寫的補丁(見附件),然告訴我你使用的看法.看起來我挺酷,可我不想一直幹下去,因為我知道有很多人比我更合適.
這些源代碼的幾個注釋:
1. 我用原始的 Makefile (HPUX)沒能成功,所以我重新編排了一下古老的 postgres95 的 Makefile 幹這事.我試圖讓它幹淨些,但是我寫的 makefile 實在差勁--只能幹點兒基本的工作.對這一點很抱歉,但我想現在的 makefile 比原來的可移植性會好一點.
2. 我直接在 pgsql/src 裡寫了樣例代碼(只要在那裡解開 tar 文件).上面說的 Makefile 假設代碼在 pgsql/src 下面的一級(我們的環境裡,在 pgsql/src/pggist 裡).
3.我對 *.c 文件的修改都是關 #include,函數原形和類型轉換的.除此之外, 我只是仍掉了一堆沒有用的變量和加了幾個圓括號來令 gcc 易分析.我希望我沒有把事情搞得太糟糕:)
4. 在 polyproc.sql 裡有個注釋:
-- -- there's a memory leak in rtree poly_ops!!
-- -- create index pix2 on polytmp using rtree (p poly_ops);
記住這些!我想它可能影響好一些老的 Postgres 版本,然試一下查詢.我的系統在大約十分鐘內就不行了,然我只有宕掉 postmaster.
我會繼續關注 GiST 一陣子,但我同樣也對 R-tree 的使用的例子感興趣.
(http://www.fanqiang.com)
進入【UNIX論壇】
|
|
| 相關文章 |
PostgreSQL7.0手冊-附錄-文檔 (2001-04-21 23:50:44) PostgreSQL7.0手冊-附錄-日期/時間支持-CVS 倉庫 (2001-04-21 23:48:48) PostgreSQL7.0手冊-教程 -73. Postgres SQL 高級特性 (2001-04-21 23:45:36) PostgreSQL7.0手冊-教程 -72. 查詢語言 (2001-04-21 23:44:40) PostgreSQL7.0手冊-教程 -71. 開始 (2001-04-21 23:42:54) PostgreSQL7.0手冊-教程 -70. 體系結構 (2001-04-21 23:41:58) PostgreSQL7.0手冊-教程 -69. SQL (2001-04-21 23:41:23) PostgreSQL7.0手冊-開發者手冊 -68. 分頁文件 (2001-04-21 23:39:22) PostgreSQL7.0手冊-開發者手冊 -67. 端接口 (2001-04-21 23:38:34) PostgreSQL7.0手冊-開發者手冊 -66. gcc 缺省優化 (2001-04-21 23:37:20)
|
===更多相關=== |
|
|
 |
★ 樊強制作 歡迎分享 ★ |