How do I host a database for a website? Which server to choose?
A database is at the core of most modern websites, web applications, and mobile applications. In the early days of the internet, websites were mostly simple HTML pages which didn’t require any form of databases. Over the years, and as web technology has evolved, websites increasingly rely on database systems to deliver dynamic content.
Whether you’re using a traditional SQL database like MySQL or PostgreSQL, or a NoSQL database like MongoDB or Redis, you’ll need a server to host it. There are several different types of server to choose from and when looking for a server, there are also some key factors you’ll need to consider, in order to make the best choice.
In this blog post we’re going to give an overview of how database servers work, how to decide the best database server for you, and how to host an SQL database for your website.
But first, we’re going to briefly explain the concept of database driven websites.
How do database driven websites work?
As we’ve touched on, most early websites consisted of web pages designed with simple HTML code. The introduction of Common Gateway Interface (known as CGI) in the mid 90s allowed websites to run scripts on the web server and then display the output on a web page. This in turn paved the way for server-side languages such as PHP, Java, ASP.NET and Ruby, which power many of the websites you access every day.
To fully understand the impact and functionality of a database driven website, we should consider the two major types of web pages you can create:
- Static Websites: These websites look exactly the same on every visit, and the content does not change in any way. Each time the website is loaded or a user interacts with a web page, there is no obvious change – hence the term static, or non-dynamic. For website changes to be made, the code must be altered, the new version of the page uploaded to the server, and then downloaded by a website visitor.
- Dynamic Websites: These websites are, as the name suggests, dynamic in nature and the content can change depending on the data in the database. Web pages load information from the database and load said data into areas of the page each time it’s loaded. Once information in the database changes, the website content will automatically change with no user input needed. The key difference here is that while the web page may seem very similar or identical to a static website, the user is actually able to interact with the information on the page.
When considering the differences between these two types of websites, it’s easy to see why dynamic websites have quickly become the standard for most businesses around the world.
Popular Database Server Types
A majority of the most popular companies in the world utilize open source database systems to power their websites. In addition to this all of the Content Management Systems (CMS) used by millions around the world, all use database systems. Hopefully by now you’re starting to get the idea – databases are a big deal!
So let’s take a look at some of the most popular types of database server:
MySQL is by far the most popular open source database platform in the world. MySQL works on a relational database management system (RDBMS) and is licensed by the GNU General Public License, meaning it’s completely free of charge and the source code is available to view.
This database system is used for web applications and is one of the core aspects of a LAMP stack, which is an open source web application system based on Linux, Apache, MySQL and PHP. A large portion of all websites are based on this software stack, or close variations of this.
SQL (Structured Query Language) is the language used by MySQL to modify, manage, and access content in databases. MySQL is an essential part of almost every open source PHP application, and some of the most popular CMS platforms like WordPress, Joomla, and Drupal rely on it.
PostgreSQL, developed by the PostgreSQL Global Development Group, is a database server based on an object-relational database management system (ORDBMS), with a focus on high extensibility, integrations, and standards compliance.
This database system stores data points in rows, with columns representing different data attributes, and a database table storing multiple related rows. Where PostgreSQL differentiates itself is in it’s support for complex structures, user-defined data types, extensive data capacity, and high level of trust for its data integrity. PostgreSQL offers a huge number of functions that help developers create more resilient and secure environments, more easily manage large data sets, and better protect data integrity.
PostgreSQL supports both SQL (relational) and JSON (non-relation) querying, and is commonly used as the primary data store for many web, analytics, and geospatial applications. Due to it’s advanced feature set and performance optimisations, it’s often used in place of commercial database alternatives like Oracle and SQL Server.
MSSQL stands for Microsoft SQL Server, and is another very popular relational database management system developed to store, manage, and retrieve data as requested by web applications. Used on Windows systems, MSSQL is widely used in both enterprise deployments and single-machine applications.
Like most other database management systems, MSSQL supports standard SQL, but the system itself contains T-SQL (Transact-SQL) which is an extension of SQL that’s used specifically for MSSQL server databases and software. At an end user level it works very similarly to MySQL, but it provides a number of additional tools for reporting, data analysis, scheduling, and management.
Microsoft SQL Server also comes in a variety of different products, with each providing a different service. Unlike many other relational database management systems however, MSSQL is not free and requires a license to use.
What server factors affect database performance?
Now that we’ve covered how database driven websites work, and some of the most popular types of database servers, we’re going to take a look at the different factors that affect database performance on a hosted server.
Your choice of hardware for your server can have a significant impact on the reliability and performance of both your database, and the applications that use it. When choosing a server to host your database on, these are just a few of the most important factors to take into consideration. Of course, this isn’t an exhaustive list, but you shouldn’t forget to take these into account when making your decision!
Since your web application will need to continuously read from and write to the database held on your server’s storage medium, it’s important to consider which type of storage to go for.
There are 3 main types of server storage that your database can utilise:
- SATA Drives: Also known as traditional Hard Disk Drives or HDDs, this type of storage is older, slower, and cheaper as a result. You’ll typically pay a much lower amount for a high amount of storage space, but reading to and writing from HDDs is significantly slower than other storage types.
- SSD Drives: Also known as Solid State Drives, this type of storage doesn’t rely on mechanical disk platters to store information, and is instead held on memory in a computer chip. SSD Drives are much faster and more reliable than HDDs, but are typically more expensive for a lower amount of storage space.
- NVMe Drives: NVMe, or Non-Volatile Memory Express, is the newest and fastest type of storage technology available. As NVMe isn’t limited by SATA speeds and instead runs directly through the PCI Express serial bus, it provides exceptional data transfer speeds, but is easily the most expensive type of storage.
When choosing your storage type, you should consider both the query speed, and the amount of data that needs to be stored. You must also of course, balance your applications requirements with your budget.
If you have a database with high IO requirements, that processes a large amount of concurrent queries, then faster storage like SSD or NVMe is likely to benefit you. If however you have a large database that’s queried infrequently, then a HDD will probably meet your requirements.
Your system’s memory, otherwise known as RAM, has a significant impact on database server performance. All storage types are slower than RAM, meaning that if a database can read the data requested from a query into memory, then it’ll be able to run as fast as possible without paging and swapping memory.
As a rule, you should try and ensure that you have enough RAM to keep the database’s indexes in memory, for the best performance.
The impact of your processor’s performance on your database will generally depend on two factors: the speed of each core, and the number of cores.
Which processor to choose will depend on how your application works. In particular, the performance characteristics to consider are whether your application can take advantage of multiple cores, the number of users that will access the database concurrently, and the type of queries that the database will carry out.
How to host a database on a server
In the final section of this post, we’re going to explain how you can host a database on a server. Specifically, we’re going to be showing you how to create a database host on our cloud database solutions plan.
As a prerequisite, we’ve already configured a LAMP stack with MySQL Server on our UKHost4u Cloud Database Platform.
- First we need to navigate to the PHPMyAdmin login screen and enter your login credentials:
- Next, navigate to the Databases tab in PHPMyAdmin:
4. Now we can enter the name for the database, and click Create:
5. The database will then appear on the left hand side of PHPMyAdmin:
Now that the database has been set up, every aspect of it can be managed from PHPMyAdmin, including users, imports/exports, queries, searches, and more!
With there being so many different types of database servers, it can be daunting when choosing a server to host your database on. We hope this guide hopes you understand how different database servers work, what to look for when choosing a hosted server for databases, and how to create a database.
Our Cloud Database Hosting plans provide you with a scalable cloud environment suitable for any type of database. With our pay-per-use pricing, you’ll also save money by only paying for the resources you use, and not a limit you’ll never reach. Visit our website for a FREE 14-day free trial!