Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

MySQL 8 - modx_discuss_posts_closure table slow #43

Open
gleighfield opened this issue Aug 1, 2024 · 4 comments
Open

MySQL 8 - modx_discuss_posts_closure table slow #43

gleighfield opened this issue Aug 1, 2024 · 4 comments

Comments

@gleighfield
Copy link

I've migrated a site over to a new server that is pre-installed with MySql 8.

I've got cloud linux 5.6 on, and everything is fine - apart from when creating a new post.

The current table has some 1 million entries in it - and when posting, is resulting in delays of 2+ minutes.

I've done extensive troubleshooting and can confirm that this is the issue - an empty table results in the post going through straight away as expected.

Any help/advice would be appreciated!

@netProphET
Copy link
Member

My initial hunch from looking at the xPDO schema is that the indexing may not be so great. It's basically a bunch of single-column indexes which all need to be updated on each new post. I don't have any recent working experience with Discuss but I would suggest taking a look at the queries generated where performance matters and to see if some better indexing could be figured out.

@gleighfield
Copy link
Author

Hi netProphET

Sorted today, and that was what it was. Switching the tabled over to innoDB and setting the indexes.

A massive thank you to Mark Willis who helped me with this!

@gleighfield
Copy link
Author

Question - do you happen to know the purpose of the emodx_discuss_posts_closure table? I'm struggling to understand the logic of it. (Some missing records I need to re-create)

@netProphET
Copy link
Member

Hi Graeme,

That table is for representing the tree-like structure of posts. The idea of a closure table is to represent a heirarchy in a way that allows for efficient and/or simpler querying of certain types of relationships. Or said another way, "faster tree traversal". I can't say for sure in the case of this Extra, but there could be code in there somewhere to help maintain the integrity of the structure.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants