数据?a title="查看有关“服务?#8221;的文?>服务?/a>Q应Ҏ(gu)高ƈ发的讉KQ每天都有大量的d删除操作。因此,旉一长服务器的内存就耗尽Q数据库的占的空间也很大。ؓ了应对这个情况,我制定两个常用的l护操作?/p>
一、注重日常清理(VACUUM;Q。因为有大量的更斎ͼupdateQ?删除(delete)操作Q会有大量的I间需要释放?/p>
每日执行一ơVACUUMQ每周访问量低的时候执行VACUUM FULL;
语法l构Q?/p>
VACUUM [ FULL | FREEZE ] [ VERBOSE ] [ table ]
VACUUM [ FULL | FREEZE ] [ VERBOSE ] ANALYZE [ table [ (column [, ...] ) ] ]
FULL ------选择"完全"清理Q这样可以恢复更多的I间Q?但是q旉更多q且在表上施加了排它锁?br /> FREEZE ---------选择Ȁq的元组"ȝ"?br /> VERBOSE --------- 为每个表打印一份详l的清理工作报告?br /> ANALYZE --------- 更新用于优化器的l计信息Q以军_执行查询的最有效PostgreSQL 操作里, 那些已经 DELETE 的元l或者被 UPDATE q后q时的元l是没有从它们所属的表中物理删除的; 在完?VACUUM 之前它们仍然存在?因此我们有必d期地q行 VACUUMQ?特别是在常更新的表上Q如果没?a title="查看有关“参数”的文?>参数QVACUUM 处理当前数据库里每个表, 如果有参敎ͼVACUUM 只处理那个表Q简单的 VACUUM Q没有FULLQ?只是单地回收I间q且令其可以再次使用Q?/p>
VACUUM命o的含义ؓQ垃圾收集以及可选地分析一个数据库。VACUUM回收已删除元l占据的存储I间。在一般的 PostgreSQL
操作里, 那些已经 DELETE 的元l或者被 UPDATE q后q时的元l是没有从它们所属的表中物理删除的; 在完?VACUUM
之前它们仍然存在?׃以下几个原因Q我们必d期性运?PostgreSQL ?VACUUM
PostgreSQL Z索引提供 B-treeQR-treeQhashQ散列) ?GiST 索引Ҏ(gu)? B-tree 索引Ҏ(gu)是一?Lehman-Yao 高ƈ?B-trees 的实 现。R-tree 索引Ҏ(gu)?Guttman 的二ơ分裂算法实C标准?R-trees? hashQ散列)索引Ҏ(gu)?Litwin 的线性散列的一个实现? 用户也可以定义它们自q索引Ҏ(gu)Q但q个工作相当复杂?
如果出现?WHERE 子句Q则创徏一?em>部分索引? 部分索引是一个只包含表的一部分记录的烦引,通常是该表中比其它部分数据更有用的部分??WHERE 子句里用的表辑ּ只能引用下层表的字段Q但是它可以使用所有字D,而不仅仅是被索引的字Dc? 目前Q子查询和聚集表辑ּ也不能出现在WHERE里?
索引定义里的所有函数和操作W都必须?em>immutableQ(不变的)也就是说Q?
它们的结果必d能依赖于它们的输入参敎ͼ而决不能依赖M外部的媄响(比如另外一个表的内Ҏ(gu)者当前时_?
q个U束保该烦引的行ؓ是定义完整的。要在一个烦引上使用用户定义函数Q请C在你创徏它的时候把它标Cؓimmutable的函数?
目前Q只?B-tree ?gist 索引Ҏ(gu)支持多字D늃引? ~省时最多可以声?32 个键字(q个限制可以在制?PostgreSQL 时修改)? 目前只有 B-tree 支持唯一索引?
可以为烦引的每个?字段声明一?操作W表? 操作W表标识要被该索引用于该列/字段的操作符? 例如Q?一个四字节整数?B-tree 索引?int4_ops 表; q个操作W表包括四字节整数的比较函数?实际上,该域的数据类型的~省操作W表一般就_了? 某些数据cd有操作符表的原因是,它们可能有多于一个的有意义的序? 例如Q我们对复数cd排序时有可能以绝对值或者以实部? 我们可以通过数据cd定义两个操作W表Q然后在建立索引的时候选择合适的表来实现?br />
Choose “File ?/font> Open…” and navigate to
C:\Program Files\PostgreSQL\8.3\share\contrib\lwpostgis.sql
Press the “Run” button. (The green triangle.) The lwpostgis.sql file will execute, loading the PostGIS functions and objects into the “postgis” database.
Choose “File ?/font> Open…” and navigate to
C:\Program Files\PostgreSQL\8.3\share\contrib\spatial_ref_sys.sql