Scalability issues in WordPress and other Content Management Systems when using a SEO friendly URI By Syam Kumar R
Most popular permalink format among bloggers is date based. But many SEO experts would advise you against it . To make URIs short and keyword rich, they suggest the structure /category/post-name/ or just /post-name/
So, what’s the problem?
If your pages are static, there is no problem. If your site is database-driven, such URIs may cause performance issues when your site grows. This is because, database need to search in more records in the table for finding the article. On the other hand, if your URI contains numerical data, it would be easier to fetch the article. When record’s id is available from URI, the article data can be fetched directly, without searching in any other records in the table. If it is the date in the URI, the articles posted on that date alone are needed to be searched.
Using record id in URI would be the best option. But record id is just cruft1 for users. So the other good option is using date in URI. This is especially good if it is a news site or a traditional blog.
You can read a discussion about this in WordPress testers mailing list: WordPress scaling problems
Verbose rules are used for structures beginning with %category%, %tag%, %postname%, and %author%. Avoiding such structures is best.
WordPress Codex also states this:
For performance reasons, it is not a good idea to start your permalink structure with the category, tag, author, or postname fields. The reason is that these are text fields, and using them at the beginning of your permalink structure it takes more time for WordPress to distinguish your Post URLs from Page URLs (which always use the text “page slug” as the URL), and to compensate, WordPress stores a lot of extra information in its database (so much that sites with lots of Pages have experienced difficulties). So, it is best to start your permalink structure with a numeric field, such as the year or post ID
This is not a WordPress specific problem.
This would be a problem for any dynamic CMS, not just WordPress. If there isn’t some way to narrow down the information in the URL and map it to a specific page or post, the system must perform a lot of database searches to find the correct entry.