diff --git a/doc/src/sgml/config.sgml b/doc/src/sgml/config.sgml
index 4dc1277f25258482d9710c2fcd39b5e759259338..91a601559f0221a9d4cc930272416fc90d93d88f 100644
--- a/doc/src/sgml/config.sgml
+++ b/doc/src/sgml/config.sgml
@@ -1213,7 +1213,7 @@ include 'filename'
        <para>
         Specifies the amount of memory to be used by internal sort operations
         and hash tables before writing to temporary disk files. The value
-        defaults to one megabyte (<literal>1MB</>).
+        defaults to four megabytes (<literal>4MB</>).
         Note that for a complex query, several sort or hash operations might be
         running in parallel; each operation will be allowed to use as much memory
         as this value specifies before it starts to write data into temporary
@@ -1239,7 +1239,7 @@ include 'filename'
         Specifies the maximum amount of memory to be used by maintenance
         operations, such as <command>VACUUM</command>, <command>CREATE
         INDEX</>, and <command>ALTER TABLE ADD FOREIGN KEY</>.  It defaults
-        to 16 megabytes (<literal>16MB</>).  Since only one of these
+        to 64 megabytes (<literal>64MB</>).  Since only one of these
         operations can be executed at a time by a database session, and
         an installation normally doesn't have many of them running
         concurrently, it's safe to set this value significantly larger
diff --git a/src/backend/utils/misc/guc.c b/src/backend/utils/misc/guc.c
index 86afde17de536540a9e1c2f7ca38bd989ad6376d..aa5a8757fa30322c0a9f8aeb35c4001d7b427d6b 100644
--- a/src/backend/utils/misc/guc.c
+++ b/src/backend/utils/misc/guc.c
@@ -1773,7 +1773,7 @@ static struct config_int ConfigureNamesInt[] =
 			GUC_UNIT_KB
 		},
 		&work_mem,
-		1024, 64, MAX_KILOBYTES,
+		4096, 64, MAX_KILOBYTES,
 		NULL, NULL, NULL
 	},
 
@@ -1784,7 +1784,7 @@ static struct config_int ConfigureNamesInt[] =
 			GUC_UNIT_KB
 		},
 		&maintenance_work_mem,
-		16384, 1024, MAX_KILOBYTES,
+		65536, 1024, MAX_KILOBYTES,
 		NULL, NULL, NULL
 	},
 
diff --git a/src/backend/utils/misc/postgresql.conf.sample b/src/backend/utils/misc/postgresql.conf.sample
index 480c9e9797e3238a495f2435ecea465bedb5e696..07341e72a437237d9e26cb3cb0c81d97151fda12 100644
--- a/src/backend/utils/misc/postgresql.conf.sample
+++ b/src/backend/utils/misc/postgresql.conf.sample
@@ -124,8 +124,8 @@
 # per transaction slot, plus lock space (see max_locks_per_transaction).
 # It is not advisable to set max_prepared_transactions nonzero unless you
 # actively intend to use prepared transactions.
-#work_mem = 1MB				# min 64kB
-#maintenance_work_mem = 16MB		# min 1MB
+#work_mem = 4MB				# min 64kB
+#maintenance_work_mem = 64MB		# min 1MB
 #autovacuum_work_mem = -1		# min 1MB, or -1 to use maintenance_work_mem
 #max_stack_depth = 2MB			# min 100kB
 #dynamic_shared_memory_type = posix # the default is the first option