I've been using Umbraco for quite a couple of years now.
And in starting to have some performance issues.
My issues is primary the speed of my website. I import a great deal of data through feeds and generate XML files, that i then use to show products.
All the products are stored as notes in Umbraco backend, and that seems to be the problem.
Is there any easy way, or package to handle some kind of extra database to fetch products from?
Im not a hardcore Umbraco developer, so if you haven't guessed it, im looking for an easy solution ;)
Atm at my fitness site (fitness-pris.dk) i import somewhere around 1.000 products, and if i import more, the site crashes.
FYI: Products are imported from XML feeds, somewhat like Google Shopping feeds.
Storing content with the ContentService in Umbraco isn't very fast. We had the same experiences with web application that are not readonly, but also adds content to Umbraco as nodes.
I would like to suggest to split the pure CMS content, the content that is needed to let your website operate correctly, from the product data. You can store the products in a very fast NoSQL database like MongoDB. Then in your Umbraco envrionment you only have the Products page. On that page you can load the products data from the external database. This is going to be a much faster approach.
You can consider to inject the (external) product data in the Umbraco page model by using RouteHijacking or something similar.
If you go down the MongoDB route, or other noSQL Db styles, just make sure you lock them down. They seem to be one of the most common causes of data exposure recently :-) (Sorry for the off topic response)
From what I've read it's generally because of poor security. People leaving their DB's unencrypted / unprotected. There are websites/services that apparently trawl the internet for exposed DBs seraching things like S3 buckets, blob storage etc.
You can host your own local Mongo instance, so nobody can access the DB from external. That would be pretty secure?
Also I think the choice for which type of database depends on what you are actually storing in that DB and which level of security is sufficient.
You always have to care about security, not special to Mongo databases. But it is slightly off topic. You can consider custom SQL database as well, because the ContentService implements a lot more that just adding entries to the database, which makes it relatively slow.
When you would like to search very fast in you custom SQL tables you can add custom Examine indexers to you Umbraco site.
Any great feed/api handlers for Umbraco v8
Hi guys,
UPDATE: Will try to make it work with MongoDB.
I've been using Umbraco for quite a couple of years now. And in starting to have some performance issues.
My issues is primary the speed of my website. I import a great deal of data through feeds and generate XML files, that i then use to show products. All the products are stored as notes in Umbraco backend, and that seems to be the problem.
Is there any easy way, or package to handle some kind of extra database to fetch products from?
Im not a hardcore Umbraco developer, so if you haven't guessed it, im looking for an easy solution ;)
Atm at my fitness site (fitness-pris.dk) i import somewhere around 1.000 products, and if i import more, the site crashes.
FYI: Products are imported from XML feeds, somewhat like Google Shopping feeds.
Hi,
Storing content with the
ContentService
in Umbraco isn't very fast. We had the same experiences with web application that are not readonly, but also adds content to Umbraco as nodes.I would like to suggest to split the pure CMS content, the content that is needed to let your website operate correctly, from the product data. You can store the products in a very fast NoSQL database like MongoDB. Then in your Umbraco envrionment you only have the Products page. On that page you can load the products data from the external database. This is going to be a much faster approach.
You can consider to inject the (external) product data in the Umbraco page model by using RouteHijacking or something similar.
Important when using Umbraco is that you are not requesting the database when serving pages. You can use the built in miniprofiler to check if your website makes database calls. https://our.umbraco.com/documentation/Getting-Started/Code/Debugging/
Hi Corné
Thank you for the swift answer.
I've heard a lot of good things about MongoDB. Maybe its time for me to give it a try :) Speed is crucial for visitor-value.
I'll try to have a look at RouteHijacking also. Maybe thats the more easy way for me :o
If you go down the MongoDB route, or other noSQL Db styles, just make sure you lock them down. They seem to be one of the most common causes of data exposure recently :-) (Sorry for the off topic response)
Hi Nik,
Thank you for your reply.
Is those exposures because of poor security? - or just bad code?
I dont hope that its because of something in the MongoDB foundation?
Hi Flemming,
From what I've read it's generally because of poor security. People leaving their DB's unencrypted / unprotected. There are websites/services that apparently trawl the internet for exposed DBs seraching things like S3 buckets, blob storage etc.
Nik
You can host your own local Mongo instance, so nobody can access the DB from external. That would be pretty secure?
Also I think the choice for which type of database depends on what you are actually storing in that DB and which level of security is sufficient.
You always have to care about security, not special to Mongo databases. But it is slightly off topic. You can consider custom SQL database as well, because the
ContentService
implements a lot more that just adding entries to the database, which makes it relatively slow.When you would like to search very fast in you custom SQL tables you can add custom Examine indexers to you Umbraco site.
is working on a reply...