Sitecore Databases Explained

Like every other CMS on the planet, Sitecore’s data is stored in a database, well to be more precise several databases.  If you look at your SQL server after you install a fresh copy of SQL, you should see something like this:

sitecore_database_1

This may seem like a lot of databases, but each has its own specific purpose.   Out of these databases, Sitecore CMS itself uses three to manage content within the CMS itself, which are core, master and web.

Core

As the name implies, this is where the ‘Core’ Sitecore items and associated data are stored. Things like.Net Membership Provider tables etc..

Master

This is the database where all the authoring objects live.

Web

This is where your live websites data will live. When you want a page to go live, you will promote it from the ‘Master‘ database and move it into the ‘Web‘ database. Splitting up the database between ‘Master’ and ‘Web’ has a few benefits. First, is security, you’re none exposing the minim amount of data to the external world. Second, as the ‘Web‘ database will have a smaller subset of objects, data retrieval will be quicker.

Analytics and xDb

You will also notice that an Analytics database has also been installed, historically, this used to be the main database, where all the Sitecore stats were used, but, as of version 7.5 this changed a bit. With the release of Experience Database (xDb) Analytics. Sitecore made a massive jump forward in Analytics and can now provide analytics as customers interact with your website, mobile app or email campaign in real-time. This level of instant access wouldn’t have been possible with the old SQL database approach as it would involve too much network load. To counter this load, Sitecore decided to use a NoSqp approach, using MongoDB. If you have never used Mongo before, there’s no need to panic. Mongo is a NoSQL database, which mean data is stored on the server/disk (unless you go cloud hosted) rather than a SQL database. As it takes time to call SQL, get data etc.. NoSQL is generally faster. There are several NoSQL alternatives, like, Redis or Cassandra and MongoDB is another top contender.

In case you are wondering what the SQL analytics database is used for then… it’s to store historical analytic data. Mongo is the place to see the current/live analytics. After a certain period this data is then copied into SQL for historic data.

Jon D Jones

Software Architect, Programmer and Technologist Jon Jones is founder and CEO of London-based tech firm Digital Prompt. He has been working in the field for nearly a decade, specializing in new technologies and technical solution research in the web business. A passionate blogger by heart , speaker & consultant from England.. always on the hunt for the next challenge

More Posts

0 replies

Leave a Reply

Want to join the discussion?
Feel free to contribute!

Leave a Reply

Your email address will not be published. Required fields are marked *