Remove some verbiage describing how min() and max() are slow when applied
authorNeil Conway
Mon, 23 May 2005 01:50:01 +0000 (01:50 +0000)
committerNeil Conway
Mon, 23 May 2005 01:50:01 +0000 (01:50 +0000)
to the entire table: as of current sources, they are no longer slow
provided there is an index on the column.

doc/src/sgml/func.sgml

index 8cb4bb72b2198a0eb049cfdbd63cf52f38b4ca4b..67d212ed3f9998a4c50c2f7a756e49ae63497067 100644 (file)
@@ -1,5 +1,5 @@
 
 
@@ -7317,55 +7317,16 @@ SELECT b1 = ANY((SELECT b2 FROM t2 ...)) FROM t1 ...;
   
    
     Users accustomed to working with other SQL database management
-    systems may be surprised by the performance characteristics of
-    certain aggregate functions in
-    PostgreSQL when the aggregate is
-    applied to the entire table (in other words, no
-    WHERE clause is specified). In particular, a
-    query like
+    systems may be surprised by the performance of the
+    count aggregate when it is applied to the
+    entire table. A query like:
 
-SELECT min(col) FROM sometable;
+SELECT count(*) FROM sometable;
 
     will be executed by PostgreSQL using a
-    sequential scan of the entire table. Other database systems may
-    optimize queries of this form to use an index on the column, if
-    one is available. Similarly, the aggregate functions
-    max() and count() always
-    require a sequential scan if applied to the entire table in
-    PostgreSQL.
-   
-
-   
-    PostgreSQL cannot easily implement this
-    optimization because it also allows for user-defined aggregate
-    queries. Since min(),
-    max(), and count() are
-    defined using a generic API for aggregate functions, there is no
-    provision for special-casing the execution of these functions
-    under certain circumstances.
-   
-
-   
-    Fortunately, there is a simple workaround for
-    min() and max(). The
-    query shown below is equivalent to the query above, except that it
-    can take advantage of a B-tree index if there is one present on
-    the column in question.
-
-SELECT col FROM sometable ORDER BY col ASC LIMIT 1;
-
-    A similar query (obtained by substituting DESC
-    for ASC in the query above) can be used in the
-    place of max().
-   
-
-   
-    Unfortunately, there is no similarly trivial workaround that can
-    be used to improve the performance of count()
-    when applied to the entire table.
+    sequential scan of the entire table.
    
   
-