Yofazza
Member
Posted 3 years ago #
Hello,
I see in wp_post2cat that category_id is not indexed. It is indexed but after post_id. I believe queries like "SELECT post_id FROM wp_post2cat WHERE category_id = 5" will not get any advantage from the index? (am I wrong?)
I have a feeling that I'm missing something. Can you guys tell me (the right way on) how to retrieve posts from a certain category manually? I need to do it in a page of mine, outside wordpress. Not using RSS because I need all of the posts (or is there a way to use RSS to get all posts?).
Thank you in advance.
pizdin_dim
Member
Posted 3 years ago #
No, you're NOT wrong. This appears to go back all the way to WP 1.5x and looking at the source of WP 2.04 it appears that only the admin function wp_dropdown_cats() will benefit from the added index and that's probably the reason it wasn't implemented.
Your SQL syntax above IS correct and you should modify the "post2cat" table:
alter table wp_post2cat add index category_id (category_id);
Yofazza
Member
Posted 3 years ago #
Thank you,
alter table wp_post2cat add index category_id (category_id);
I'll do that.
---
But btw, does WP (default install) really look into the whole row in wp_post2cat, when it wants to retrieve posts from just a single category? Is there a reason for this? I mean, it's hard to believe that no one in the development team realize this "problem". That's why I think there might be some kind of "unusual" way in WP's core to retrieve posts by category, efficiently.