Open nagilum99 opened 3 years ago
cc @juliushaertl @blizzz
Is this Issue still valid in NC21.0.2? If not, please close this issue. Thanks! :)
Might not be a huge issue especially if there are no or a small amount of flow operations configured, but would still be good for larger amounts. We could probably add an index to the first couple of chars that wouldn't help much with the query since indexes are not used on not equal comparisons (<>
). Not sure if in theory a nullable column would help with that.
I am using Nextcloud 22.2.5 and the problem still exists.
I followed the NC "Performance consideration":
log-queries-not-using-indexes
slow_query_log = 1
slow_query_log_file = /var/log/mysql/mysql-slow.log
long_query_time=100
The output is similar to what is shown above. Interesting is SELECT * FROM `oc_appconfig`;
over and over again. Try e.g. opening NC System --> nextcloud/index.php/settings/admin/overview or just wait. You'll see the repeated query. Can't this be cached? The configuration should hardly ever change during runtime.
But I also see SELECT `class`, `entity`, `events` AS `events` FROM `oc_flow_operations` WHERE `events` <> '[]' GROUP BY `class`, `entity`, `events`;
multiple times per second.
I am wondering is this just a problem for some users? @juliushaertl I do not understand you saying "Might not be a huge issue". Considering what the performance consideration linked above say: "The general rule is: database queries are very bad and should be avoided if possible."
What might also be worth the developers' time: Try running MySQL Tuning-Primer.sh. I get there (just for my NC installation) things like:
KEY BUFFER
No key reads?!
Seriously look into using some indexes
and
JOINS
Current join_buffer_size = 260.00 K
You have had 25 queries where a join could not use an index properly
You have had 658 joins without keys that check for key usage after each row
Also MySQLTuner reports that there are lots of performance enhancements from which NC would benefit.
Interesting is
SELECT * FROM `oc_appconfig`;
over and over again.
Steps to reproduce
set
log_queries_not_using_indexes = 1
to mysql config.Expected behaviour
Probably a very few logfile entrys from upgrades etc.
Actual behaviour
Nextcloud version: (see Nextcloud admin page) 20.0.6
Updated from an older Nextcloud/ownCloud or fresh install: Originally Owncloud, several major Nextcloud versions upgraded
Signing status: No errors have been found.
List of activated apps:
IMHO if the same querys happen that often (should roughly be 1 request per second being logged) there should be an Index.
Regards!