The WP_Query->get_posts() function in WordPress is used to retrieve a set of posts based on certain parameters. However, if the queries generated by this function are slow, it can cause performance issues on your site.
There are several reasons why the WP_Query->get_posts() function may be slow on MySQL 8. One possible reason is that the MySQL 8 optimizer is not able to generate optimal execution plans for the queries generated by the WP_Query->get_posts() function. This can be due to the complexity of the queries, or the lack of proper indexes on the relevant tables.
Another possible reason for slow queries is that the MySQL 8 query cache is not working as expected. The query cache is used to store the results of previously executed queries, so that they can be quickly retrieved the next time the same query is executed. If the query cache is not working properly, it can cause the WP_Query->get_posts() function to execute the same query multiple times, resulting in slow performance.
Another possible reason is that the queries are not optimized. Unoptimized queries can cause slow performance when executed on large datasets.
To fix this issue, you can try to optimize your queries by adding proper indexes on the relevant tables, and also you can try to optimize your queries by using the ‘explain’ statement in SQL to check the execution plan and optimize it.
You can also try to increase the size of the query cache, or to disable it entirely if it is not providing any performance benefits.
Last modified: March 3, 2023