Update Instance total post, add optional estimation for huge status tables

pull/5922/head
Daniel Supernault 2 weeks ago
parent b7ae725850
commit 5a5821fe86
No known key found for this signature in database
GPG Key ID: 23740873EE6F76A1

@ -77,10 +77,14 @@ class InstanceUpdateTotalLocalPosts extends Command
protected function getTotalLocalPosts() protected function getTotalLocalPosts()
{ {
if ((bool) config('instance.total_count_estimate') && config('database.default') === 'mysql') {
return DB::select("EXPLAIN SELECT COUNT(*) FROM statuses WHERE deleted_at IS NULL AND local = 1 AND type != 'share'")[0]->rows;
}
return DB::table('statuses') return DB::table('statuses')
->whereNull('deleted_at') ->whereNull('deleted_at')
->where('local', true) ->where('local', true)
->whereNot('type', 'share') # Ignore boosts for the post count ->whereNot('type', 'share')
->count(); ->count();
} }
} }

@ -188,4 +188,6 @@ return [
'show_peers' => env('INSTANCE_SHOW_PEERS', false), 'show_peers' => env('INSTANCE_SHOW_PEERS', false),
'allow_new_account_dms' => env('INSTANCE_ALLOW_NEW_DMS', true), 'allow_new_account_dms' => env('INSTANCE_ALLOW_NEW_DMS', true),
'total_count_estimate' => env('INSTANCE_TOTAL_POSTS_COUNT_ESTIMATE', false),
]; ];

Loading…
Cancel
Save