Index: src/wp-admin/includes/class-wp-users-list-table.php
===================================================================
--- src/wp-admin/includes/class-wp-users-list-table.php	(revision 39531)
+++ src/wp-admin/includes/class-wp-users-list-table.php	(working copy)
@@ -173,27 +173,49 @@
 		global $role;
 
 		$wp_roles = wp_roles();
+		$count_users = true;
 
+		if ( wp_is_large_site() ) {
+			$count_users = false;
+		} elseif ( is_multisite() && wp_is_large_network( 'users' ) ) {
+			$count_users = false;
+		}
+
 		if ( $this->is_site_users ) {
 			$url = 'site-users.php?id=' . $this->site_id;
-			switch_to_blog( $this->site_id );
-			$users_of_blog = count_users();
-			restore_current_blog();
+			if ( $count_users ) {
+				switch_to_blog( $this->site_id );
+				$users_of_blog = count_users();
+				restore_current_blog();
+			}
 		} else {
 			$url = 'users.php';
-			$users_of_blog = count_users();
+			if ( $count_users ) {
+				$users_of_blog = count_users();
+			}
 		}
 
-		$total_users = $users_of_blog['total_users'];
-		$avail_roles =& $users_of_blog['avail_roles'];
-		unset($users_of_blog);
+		if ( $count_users ) {
+			$total_users =  $users_of_blog['total_users'];
+			$avail_roles =& $users_of_blog['avail_roles'];
+			unset( $users_of_blog );
+		} else {
+			$avail_roles = array();
+		}
 
 		$class = empty($role) ? ' class="current"' : '';
 		$role_links = array();
-		$role_links['all'] = "<a href='$url'$class>" . sprintf( _nx( 'All <span class="count">(%s)</span>', 'All <span class="count">(%s)</span>', $total_users, 'users' ), number_format_i18n( $total_users ) ) . '</a>';
+
+		if ( $count_users ) {
+			$role_links['all'] = "<a href='$url'$class>" . sprintf( _nx( 'All <span class="count">(%s)</span>', 'All <span class="count">(%s)</span>', $total_users, 'users' ), number_format_i18n( $total_users ) ) . '</a>';
+		} else {
+			$role_links['all'] = "<a href='$url'$class>" . _x( 'All', 'users' ) . '</a>';
+		}
+
 		foreach ( $wp_roles->get_names() as $this_role => $name ) {
-			if ( !isset($avail_roles[$this_role]) )
+			if ( $count_users && ! isset( $avail_roles[ $this_role ] ) ) {
 				continue;
+			}
 
 			$class = '';
 
@@ -202,12 +224,14 @@
 			}
 
 			$name = translate_user_role( $name );
-			/* translators: User role name with count */
-			$name = sprintf( __('%1$s <span class="count">(%2$s)</span>'), $name, number_format_i18n( $avail_roles[$this_role] ) );
+			if ( $count_users ) {
+				/* translators: User role name with count */
+				$name = sprintf( __('%1$s <span class="count">(%2$s)</span>'), $name, number_format_i18n( $avail_roles[$this_role] ) );
+			}
 			$role_links[$this_role] = "<a href='" . esc_url( add_query_arg( 'role', $this_role, $url ) ) . "'$class>$name</a>";
 		}
 
-		if ( ! empty( $avail_roles['none' ] ) ) {
+		if ( ! $count_users || ! empty( $avail_roles['none' ] ) ) {
 
 			$class = '';
 
@@ -216,8 +240,10 @@
 			}
 
 			$name = __( 'No role' );
-			/* translators: User role name with count */
-			$name = sprintf( __('%1$s <span class="count">(%2$s)</span>'), $name, number_format_i18n( $avail_roles['none' ] ) );
+			if ( $count_users ) {
+				/* translators: User role name with count */
+				$name = sprintf( __('%1$s <span class="count">(%2$s)</span>'), $name, number_format_i18n( $avail_roles['none' ] ) );
+			}
 			$role_links['none'] = "<a href='" . esc_url( add_query_arg( 'role', 'none', $url ) ) . "'$class>$name</a>";
 
 		}
Index: src/wp-includes/functions.php
===================================================================
--- src/wp-includes/functions.php	(revision 39531)
+++ src/wp-includes/functions.php	(working copy)
@@ -35,6 +35,7 @@
 	if ( 'U' == $format )
 		return $i;
 
+
 	if ( $translate )
 		return date_i18n( $format, $i );
 	else
@@ -5592,3 +5593,60 @@
 
 	return $last_changed;
 }
+
+/**
+ * Whether or not we have a large site.
+ *
+ * The default criteria for a large site is more than 10,000 users.
+ *
+ * @since x.x.x
+ *
+ * @return bool True if the site meets the criteria for large. False otherwise.
+ */
+function wp_is_large_site() {
+	$count = wp_active_user_count();
+
+	/**
+	 * Filters whether the site is considered large.
+	 *
+	 * @since x.x.x
+	 *
+	 * @param bool   $is_large_site Whether the site has more than 10000 users.
+	 * @param int    $count         The count of items for the component.
+	 */
+	return apply_filters( 'wp_is_large_site', $count > 10000, $count );
+}
+
+/**
+ * Update the active user count.
+ *
+ * @since x.x.x
+ *
+ * @global wpdb $wpdb WordPress database abstraction object.
+ */
+function wp_get_active_user_count() {
+	global $wpdb;
+
+	$count = $wpdb->get_var( "SELECT COUNT(ID) as c FROM $wpdb->users" );
+	return $count;
+}
+
+/**
+ * The number of active users.
+ *
+ * The count is cached and updated twice daily. This is not a live count.
+ *
+ * @since x.x.x
+ *
+ * @return int
+ */
+function wp_active_user_count() {
+	$count = get_transient( 'active_user_count' );
+
+	if ( false === $count ) {
+		$count = wp_get_active_user_count();
+		set_transient( 'active_user_count', $count, 12 * HOUR_IN_SECONDS );
+	}
+
+	return (int) $count;
+}
Index: src/wp-includes/update.php
===================================================================
--- src/wp-includes/update.php	(revision 39531)
+++ src/wp-includes/update.php	(working copy)
@@ -78,8 +78,7 @@
 		$wp_install = network_site_url();
 		$multisite_enabled = 1;
 	} else {
-		$user_count = count_users();
-		$user_count = $user_count['total_users'];
+		$user_count = wp_get_active_user_count();
 		$multisite_enabled = 0;
 		$num_blogs = 1;
 		$wp_install = home_url( '/' );
