PostgreSQL的B-tree索引用法详解
通常情况下,B-tree的索引记录存储在数据页中。等值查询例如通过"indexed-field = expression"形式的条件查询49这个值。因此,在内部节点进行等值查询49时,定位到49这个值,然后选择49的前一个值43,向下进入其子节点进行搜索。最后,在底层节点中从左到右进行搜索。查询时需要排除等值查询出的值。通过demo database中的aircraft表进行介绍。这样做是为了多列索引。但是为了清晰起见,特意将其分成几页。然而,通过谓词model = 'Boeing 777-300'进行搜索的效率将大大降低:从root开始,判断不出选择哪个子节点进行向下搜索,因此会遍历所有子节点向下进行搜索。NULLsPostgreSQL的B-tree支持在NULLs上创建索引,可以通过IS NULL或者IS NOT NULL的条件进行查询。然而NULLs在数据库中扮演者很重要的角色,因此不得不为NULL做特殊设置。
用户评论