Website page load times
When you say that the page loading time for 10,000 Components is very high, taking 20 to 30 seconds, I presume that you are talking about the time to actually return the final webpage to the website user, when requested by the browser.
If so, then I would agree that this is a concern, and you may want to reconsider restructuring your content to reduce the amount of content displayed on the screen. You could do this, for example, by:
- Paginating the glossary terms (using page numbers)
- Having the glossary terms of different pages, with an A-Z index
- Using infinite scroll to only load in the glossary terms as needed.
If, on the other hand, the 20-30 second delay that you are experiencing is happening when you re-publish the Page from within Tridion, then I would suggest that this isn't too bad - if you have 30,000 Components, then this will mean that there are 1000 Components being processed per second!
If you really need to speed up the publishing time for this Page, then I'd suggest that you implement this using Dynamic Component Presentations (DCPs) (login required) for each of your glossary terms, and use the Content Delivery API to fetch and render each of these.
Using server-side application logic to fetch and render each of the glossary terms will prevent all 30,000 of your Components from having to be re-published each time you make a change.
Following an initial publish of all of the Glossary Components, you will only have to re-publish any new or updated Components in the future.
If you implement these as DCPs, then you will probably want to introduce a level of application caching, and also to ensure that the Tridion Cache Channel Service is running and configured correctly.
You may even want to combine the two approaches above. For example, you could have an infinite scroll that loads in Dynamic Component Presentations.