From bd0348b53c9fa234ea30a09412e235fd6ec34ab8 Mon Sep 17 00:00:00 2001 From: Michael Date: Mon, 20 Feb 2023 14:46:58 +0000 Subject: [PATCH] Config to enable the optimizing of all tables --- src/Worker/OptimizeTables.php | 49 +++++++++++++++++++---------------- static/defaults.config.php | 4 +++ 2 files changed, 30 insertions(+), 23 deletions(-) diff --git a/src/Worker/OptimizeTables.php b/src/Worker/OptimizeTables.php index 9a49e42561..bb4cc9e482 100644 --- a/src/Worker/OptimizeTables.php +++ b/src/Worker/OptimizeTables.php @@ -40,34 +40,37 @@ class OptimizeTables Logger::info('Optimize start'); - DBA::e("OPTIMIZE TABLE `apcontact`"); DBA::e("OPTIMIZE TABLE `cache`"); - DBA::e("OPTIMIZE TABLE `contact`"); - DBA::e("OPTIMIZE TABLE `contact-relation`"); - DBA::e("OPTIMIZE TABLE `conversation`"); - DBA::e("OPTIMIZE TABLE `diaspora-contact`"); - DBA::e("OPTIMIZE TABLE `diaspora-interaction`"); - DBA::e("OPTIMIZE TABLE `fcontact`"); - DBA::e("OPTIMIZE TABLE `gserver`"); - DBA::e("OPTIMIZE TABLE `gserver-tag`"); DBA::e("OPTIMIZE TABLE `locks`"); - DBA::e("OPTIMIZE TABLE `inbox-status`"); - DBA::e("OPTIMIZE TABLE `item-uri`"); - DBA::e("OPTIMIZE TABLE `notification`"); - DBA::e("OPTIMIZE TABLE `notify`"); DBA::e("OPTIMIZE TABLE `oembed`"); DBA::e("OPTIMIZE TABLE `parsed_url`"); DBA::e("OPTIMIZE TABLE `session`"); - DBA::e("OPTIMIZE TABLE `photo`"); - DBA::e("OPTIMIZE TABLE `post`"); - DBA::e("OPTIMIZE TABLE `post-content`"); - DBA::e("OPTIMIZE TABLE `post-delivery-data`"); - DBA::e("OPTIMIZE TABLE `post-link`"); - DBA::e("OPTIMIZE TABLE `post-thread`"); - DBA::e("OPTIMIZE TABLE `post-thread-user`"); - DBA::e("OPTIMIZE TABLE `post-user`"); - DBA::e("OPTIMIZE TABLE `storage`"); - DBA::e("OPTIMIZE TABLE `tag`"); + + if (DI::config()->get('system', 'optimize_all_tables')) { + DBA::e("OPTIMIZE TABLE `apcontact`"); + DBA::e("OPTIMIZE TABLE `contact`"); + DBA::e("OPTIMIZE TABLE `contact-relation`"); + DBA::e("OPTIMIZE TABLE `conversation`"); + DBA::e("OPTIMIZE TABLE `diaspora-contact`"); + DBA::e("OPTIMIZE TABLE `diaspora-interaction`"); + DBA::e("OPTIMIZE TABLE `fcontact`"); + DBA::e("OPTIMIZE TABLE `gserver`"); + DBA::e("OPTIMIZE TABLE `gserver-tag`"); + DBA::e("OPTIMIZE TABLE `inbox-status`"); + DBA::e("OPTIMIZE TABLE `item-uri`"); + DBA::e("OPTIMIZE TABLE `notification`"); + DBA::e("OPTIMIZE TABLE `notify`"); + DBA::e("OPTIMIZE TABLE `photo`"); + DBA::e("OPTIMIZE TABLE `post`"); + DBA::e("OPTIMIZE TABLE `post-content`"); + DBA::e("OPTIMIZE TABLE `post-delivery-data`"); + DBA::e("OPTIMIZE TABLE `post-link`"); + DBA::e("OPTIMIZE TABLE `post-thread`"); + DBA::e("OPTIMIZE TABLE `post-thread-user`"); + DBA::e("OPTIMIZE TABLE `post-user`"); + DBA::e("OPTIMIZE TABLE `storage`"); + DBA::e("OPTIMIZE TABLE `tag`"); + } Logger::info('Optimize end'); diff --git a/static/defaults.config.php b/static/defaults.config.php index 2c45e45e48..90886347e5 100644 --- a/static/defaults.config.php +++ b/static/defaults.config.php @@ -487,6 +487,10 @@ return [ // Don't show smilies. 'no_smilies' => false, + // optimize_all_tables (Boolean) + // Optimizes all tables instead of only tables like workerqueue or the cache + 'optimize_all_tables' => false, + // paranoia (Boolean) // Log out users if their IP address changed. 'paranoia' => false,