Index: src/wp-admin/includes/template.php
===================================================================
--- src/wp-admin/includes/template.php	(revision 33589)
+++ src/wp-admin/includes/template.php	(working copy)
@@ -671,19 +671,24 @@
 	/**
 	 * Filter the number of custom fields to retrieve for the drop-down
 	 * in the Custom Fields meta box.
+	 * If zero, no fields are retrieved, skipping the query.
 	 *
 	 * @since 2.1.0
 	 *
 	 * @param int $limit Number of custom fields to retrieve. Default 30.
+	 * @param int $post_id The post ID.
 	 */
-	$limit = apply_filters( 'postmeta_form_limit', 30 );
-	$sql = "SELECT DISTINCT meta_key
-		FROM $wpdb->postmeta
-		WHERE meta_key NOT BETWEEN '_' AND '_z'
-		HAVING meta_key NOT LIKE %s
-		ORDER BY meta_key
-		LIMIT %d";
-	$keys = $wpdb->get_col( $wpdb->prepare( $sql, $wpdb->esc_like( '_' ) . '%', $limit ) );
+	$limit = apply_filters( 'postmeta_form_limit', 30, $post->ID );
+	$keys = array();
+	if ( $limit > 0 ) {
+		$sql = "SELECT DISTINCT meta_key
+			FROM $wpdb->postmeta
+			WHERE meta_key NOT BETWEEN '_' AND '_z'
+			HAVING meta_key NOT LIKE %s
+			ORDER BY meta_key
+			LIMIT %d";
+		$keys = $wpdb->get_col( $wpdb->prepare( $sql, $wpdb->esc_like( '_' ) . '%', $limit ) );
+	}
 	if ( $keys ) {
 		natcasesort( $keys );
 		$meta_key_input_id = 'metakeyselect';
