Every time you log in to a site, search for a product in an online store or read an article on WordPress, a process happens that you do not see. On most modern sites, the page in front of you did not exist a moment ago; it was assembled from information kept in a database. Even the article you are reading now is stored in one.
The word sounds technical and distant, but it enters the life of any site owner from day one. The first time you install WordPress, a database is created with it, and the first serious fault that hits your site often arrives with a message saying the connection to the database failed (Error establishing a database connection). Then most people ask: what is this database anyway, and where is it?
You do not need any programming background to read what follows.
📋 Quick summary: a database at a glance
| Criterion | Details |
|---|---|
| The name in English | Database (abbreviated DB) |
| Short definition | An organized collection of data stored electronically so that it can be searched and changed quickly |
| Who manages it | A database management system (DBMS), such as MySQL and PostgreSQL |
| The two main types | Relational (SQL), which stores data in linked tables, and non-relational (NoSQL), which stores it in flexible forms such as documents and keys |
| The language used to talk to it | SQL in relational systems (a query language, not a database) |
| What WordPress uses | MySQL or MariaDB |
| Where it is stored for your site | On the hosting server, or on a separate database server in large projects |
| Most popular worldwide (October 2026) | Oracle, then MySQL, then Microsoft SQL Server, then PostgreSQL, according to the DB-Engines ranking |
A note on that ranking: DB-Engines measures popularity (searches, jobs and technical discussions), not the number of actual installations.
What is a database?
A database is an organized collection of information kept electronically so that searching, adding, changing and deleting are quick and exact, even if it reaches millions of records. The deciding word in the definition is "organized". A huge text file holding your customers' names is not a database, because you would spend hours finding one customer in it. A database answers you in a fraction of a second because it was built from the ground up to make access easy.
Picture a huge paper archive: numbered cabinets, drawers in every cabinet and neatly ordered files in every drawer. You do not leaf through the papers one by one; you ask the archivist for "file number 4501" and they go straight to it. The database is the archive, and the archivist is the database management system we explain in a moment.
And what does it really store? In a WordPress site: article texts and titles, comments, user accounts and their passwords after encryption, the site's settings and the list of active plugins. In an online store: products, prices, stock and orders. In a banking app: accounts, balances and transfers.
A little history: from files to tables
Before databases, programs kept their information in files of their own, so if the structure of a file changed, the program broke. The fix came from a theoretical idea before it became a product:
| Year | Event |
|---|---|
| 1970 | Edgar Codd of IBM publishes his paper on the relational model: storing data in linked tables, which is the basis of what we use today |
| The 1970s | SQL is developed inside IBM to talk to these tables |
| 1979 | Oracle launches the first commercial relational system based on SQL |
| 1995 | The first version of MySQL |
| 1996 | The name PostgreSQL appears for an open-source system whose roots are in the university Postgres project |
| 2000 | SQLite appears, a whole database in one file |
| 2009 | NoSQL databases rise with MongoDB, and MariaDB appears as a separate fork of MySQL |
| Recent years | Vector databases to serve AI applications |
The irony is that an idea more than half a century old is still the most used: Oracle, MySQL and SQL Server topped the DB-Engines ranking in October 2026, and all three are relational.
The difference between a database and its management system (DBMS)
Here is the first confusion. The database is the content: the tables and the stored data. The database management system (DBMS) is the program that stores them, retrieves them and controls who can reach them. MySQL, for example, is not a database in the strict sense but a management system, and inside it you can create ten separate databases for ten sites.
But everyone, the companies themselves included, says "a MySQL database" for simplicity, and you will understand what is meant from context. What matters in practice: when your hosting panel asks for the "database name", it is asking for the name of the separate database inside the system, not the name of the system itself.
If you want a hands-on trial with the least complexity, a host such as Hostinger suits beginners: its resource page lists 10, 150 and 300 databases on its Premium, Unlimited and Cloud Startup plans (details in the Hostinger review).
Install WordPress on Hostinger hosting and its database is created automatically within minutes. Premium is $2.99 a month on a 48-month prepayment and renews at $10.99
☑️ Start with Hostinger
What does a database look like inside?
In the most common type (relational), a database is made of six elements that are enough to understand most of what you will read later in any technical guide:
🗂️ The table
A container for one kind of data: a table for users, another for products and a third for orders.
➡️ The row
One complete record in the table, such as one user with all their data.
⬇️ The column
One property for all the records, such as the name, the email or the city.
🔑 The primary key
A unique value that never repeats, usually a serial number, that tells each row apart from the rest.
🔗 The foreign key
A column that carries the primary key of another table, which is how tables are linked together.
⚡ The index
A sorted list that speeds up searching, like a book's index, in exchange for extra storage space and slightly slower writing.
A simple example from a small store. This is the customers table users:
| id | name | city | |
|---|---|---|---|
| 1 | Alex | alex@example.com | London |
| 2 | Sara | sara@example.com | Paris |
| 3 | Omar | omar@example.com | London |
And this is the orders table orders, in which the user_id column is the foreign key:
| order_id | user_id | total |
|---|---|---|
| 101 | 1 | 250 |
| 102 | 1 | 90 |
| 103 | 3 | 400 |
Notice that the orders table does not repeat the customer's name or email. It keeps only the number. If Alex changes his email, you change it once in the users table, and the change shows in all his orders. This separation between tables is called normalization, and it is the reason these systems are called "relational": the relation between tables is their heart.
To find the customers whose orders were worth more than 100, we write a query in SQL:
SELECT users.name, orders.total
FROM users
JOIN orders ON users.id = orders.user_id
WHERE orders.total > 100;
The result: Alex (250) and Omar (400). That is SQL, which is closer to simplified English. You will not need it to run a WordPress site, because WordPress writes it for you, but knowing what it looks like explains much of what you will meet later.
What happens behind the scenes when a visitor opens a page of your site?
This journey takes a fraction of a second, and the database is a main link in it:
- The visitor types your domain name in the browser or clicks a link to your site.
- The DNS system turns the name into the IP address of your site's server.
- The request reaches the web server (Apache, Nginx or LiteSpeed) on a web hosting server.
- WordPress (PHP code) asks the database: give me the text of article number so-and-so, its comments and the theme settings.
- The database replies with the requested data.
- WordPress combines the data with the theme into a full HTML page and sends it to the visitor.
The fourth step is the reason for the message Error establishing a database connection. When WordPress cannot reach the database (a wrong password in the wp-config.php file, the database server is down or the database is corrupted) it has nothing to build the page from, so it shows the error message instead of the whole site. Notice that your site's files are intact and the domain works. The problem is in one link only.
Types of database
Databases divide by storage method into two big families, relational (SQL) and non-relational (NoSQL), and specialized types branch off from them for particular purposes:
| Type | Storage method | Examples | Best for |
|---|---|---|---|
| Relational | Tables with rows and columns and keys linking them | MySQL, PostgreSQL, SQL Server, Oracle, SQLite | Sites, stores and accounting apps, that is, organized data with clear relations |
| Document | Flexible documents in JSON format | MongoDB | Data whose shape varies, such as content and product catalogs |
| Key-value | Key and value pairs, often in memory | Redis | Caching and user sessions |
| Graph | Nodes and the relations between them | Neo4j | Relationship networks: recommendations and fraud detection |
| Analytics | Column storage optimized for reading huge volumes | ClickHouse, Snowflake | Reports and analysis over billions of records |
| Vector | Numeric representations of text and images | Pinecone, pgvector | Semantic search and AI applications |
SQL vs NoSQL: which is better?
The question itself is wrong. NoSQL is not "the newer generation" that replaces SQL as some people promote, and the proof is that the top four systems in the DB-Engines ranking in October 2026 are all relational SQL systems. The real difference is one of principle: relational systems impose a strict structure up front and guarantee consistent data, which is decisive when you deal with money and orders. NoSQL gives you flexibility in the shape of data and easier scaling across several servers, in exchange for compromises in consistency at times.
If you are building an ordinary site, blog or store, relational is most likely what you need, and it is what WordPress uses anyway. Look for NoSQL when you have a specific reason, not because the name sounds modern.
The best-known database systems in 2026
| System | Type | Where you usually see it |
|---|---|---|
| Oracle Database | Commercial relational | Banks and huge enterprises, and it is first in the DB-Engines ranking |
| MySQL | Open-source relational | WordPress and many websites (owned by Oracle) |
| MariaDB | Open-source relational | A fork of MySQL that is compatible with it, and a common alternative at many hosts |
| PostgreSQL | Open-source relational | Complex apps and analytics; it gained the most score among the top ten over the year to October 2026 (+45.56 points) |
| Microsoft SQL Server | Commercial relational | Companies and apps in the Microsoft ecosystem and ASP.NET |
| SQLite | Embedded relational | Mobile apps and browsers, a whole database in one file |
| MongoDB | Document (NoSQL) | Apps whose data structure changes often |
| Redis | Key-value in memory | Caching to speed up sites and apps |
In the DB-Engines ranking of October 2026 the order is Oracle (1,119.79 points), MySQL (837.96), Microsoft SQL Server (694.47), PostgreSQL (688.75), MongoDB (374.64) and Redis in eighth place (156.09). WordPress works with MySQL and with MariaDB, and many hosts run one of them without telling you which. As an ordinary user you will not notice a difference between them.
And if you want managed cloud hosting where you do not have to run the database server yourself, Cloudways is a known choice, with details in the Cloudways review.
Cloudways lists free Redis and Object Cache Pro (on 4GB and above) and plans from $14 a month, with a 3-day free trial
☑️ See Cloudways plans
Comparisons many people mix up
A database vs an Excel sheet
Excel is an excellent tool and it is no shame to start with it. The trouble comes when the project grows and its owner finds five copies of "the final sales file" and does not know which is correct.
| Criterion | Excel | Database |
|---|---|---|
| Users at the same time | One or very few | Thousands at the same moment |
| Data size | A limit of 1,048,576 rows per sheet | Millions of records and more, depending on the system and hardware |
| Preventing errors and duplicates | Mostly manual | Constraints and keys that stop duplicates and wrong values |
| Linking tables | Formulas such as VLOOKUP | Native relations and keys in the design |
| Permissions | A password on the file | Users and fine-grained permissions for each table |
| Typical use | Personal accounts and reports | The back end that runs sites and apps |
By the way, many people think ready-made site builders do not use databases because they cannot see them. They exist, but the platform hides and manages them for you, and that is one of the differences we explained in the difference between hosting and a website builder.
A database is not hosting, nor a server, nor bandwidth
Four ideas that beginners mix up in their first week:
| Concept | What it is | An example from your site |
|---|---|---|
| Hosting | The service that rents you space and resources on a server | The plan you bought from your hosting company |
| The server | The machine that runs all the programs | The powerful computer in the data center |
| The database | Software on the server that stores your site's data and organizes it | Your articles, comments and users' accounts |
| Bandwidth | The amount of data moved between your site and its visitors | The images and files sent with every visit |
A database uses storage space (counted in your plan's quota), a processor and memory, while bandwidth is affected by the size of what is sent to the visitor. So your site can be slow while your bandwidth is barely used, and the reverse.
Where does your database live?
The location of the database changes with your type of hosting:
- Shared hosting: your database is on one server with other sites. The cheapest and the best fit for a young site.
- A VPS server: you control the database settings and memory limits, but you have to manage it yourself.
- A dedicated server: for heavy projects that need a whole machine with its processor and memory.
- Managed hosting: the company configures, monitors and tunes the database for you.
- Big companies: completely separate database servers inside data centers, replicated across geographic sites to avoid outages.
For anyone who has reached the stage of needing their own VPS with full control of their database, Contabo is a known economical option in this area, with details in the Contabo review.
Contabo's Cloud VPS 4 (4 vCPU, 8GB of RAM) is $6.60 a month ($5.28 on a 24-month price). It is unmanaged, so you run and secure the database
☑️ See Contabo VPS plans
How does the database really affect your site?
Speed: slowness is often slow queries
The server usually gets the blame for a slow site while the problem is in the database. Every page opened in WordPress calls a number of queries, and each new plugin raises the number. The best-known causes:
- Many plugins that add their own queries on every visit.
- A swollen
wp_optionstable with options that load automatically (autoload) on every page, some left behind by plugins deleted long ago. - Thousands of revisions and piled-up spam comments.
- No caching, so the database rebuilds the same page for every visitor.
The fix starts with cleaning out what you do not need and turning on a cache plugin. Delivery networks such as Cloudflare lighten the load further when they cache the pages themselves, because a cached page reaches the visitor without the request passing through WordPress and the database.
As for stores and large sites that cannot bear slowness, managed WordPress platforms tune the database and cache environment for you. One of the best known is Kinsta, with details in the Kinsta hosting review.
Kinsta runs managed WordPress hosting with a WAF, CDN and 24/7 human support on every plan. Launch is $35 a month, or $350 a year
☑️ See Kinsta plans
Security: SQL injection and why most hacks happen
The best-known attack aimed at databases is SQL injection: the attacker enters SQL commands in an ordinary field such as a search box or a login form, and if the code does not check its input, the commands run on your database. The WordPress core handles input carefully and its flaws are fixed quickly, and the bigger danger comes from old or unknown-source plugins and themes.
So the most important step to protect your database is not technically complicated: update your plugins, delete what you do not use, do not install pirated themes and give the database user a strong password of its own.
Backups: files and the database together
As we said, the database does not hold your site's images or theme. Someone who saves only the files loses their articles, comments and settings, and someone who saves only the database loses the images and the design. The backup that saves you holds both and is taken automatically, not by hand whenever you remember. And many hosts do not include daily backups in their cheapest plans, so do not assume they exist: ask or check the plan before you buy.
Jetpack's Security plan ($9.95 a month billed yearly, 50% off the first year) lists VaultPress Backup with real-time cloud backups, Jetpack Scan and Akismet
☑️ See Jetpack for backups
Practical steps: how do you create a database for your site from cPanel?
If you installed WordPress through your host's automatic installer (as in installing WordPress on Bluehost), the database is ready and you will not need these steps. You need them when you install a script by hand, move a site from another host, or create a database for an extra site. The steps below are in cPanel, and the button labels may differ slightly between hosts.
blog) and press Create Database. cPanel adds your account name as a prefix automatically, so the full name becomes something like account_blog.wp-config.php file, with these values (the host at most hosts is localhost):define( 'DB_NAME', 'account_blog' );
define( 'DB_USER', 'account_user' );
define( 'DB_PASSWORD', 'YOUR_STRONG_PASSWORD' );
define( 'DB_HOST', 'localhost' );
wp_ such as wp_posts, wp_users and wp_options. Their presence means the connection is sound.Who needs to understand databases, and who can postpone it?
✅ You need to understand them if:
- You run a WordPress site or an online store
- You are thinking of moving your site to another host
- You face slowness or a database connection error message
- You compare hosting plans that set the number and size of databases
- You plan to learn programming or build an app
⏳ You can postpone going deep if:
- You use Blogger or a ready-made site builder (the database is at the platform and you do not see it)
- You publish content on managed hosting that handles the whole technical side
- Your project is a simple experiment you do not rely on for income
Even if you are in this group, learn the basics before the first fault, not after.
🏆 The final verdict: what do you do after reading this article?
The database is the part of your site you do not see, and the part that costs you everything if it fails with no backup. You will rarely need to write a line of SQL, but four practical things deserve your attention from today:
- When you buy hosting, review the plan's limits: the number of databases allowed, their size and the storage space.
- Turn on automatic backups that include the files and the database together, and test restoring one at least once.
- Keep plugins and themes updated and delete what you do not use; it is the first line of defense for your data.
- If your site slows down, check the database and the cache before you blame the host or move to another.
And when you choose between companies, compare the options in the best web hosting companies guide by your budget and your project's size. For a beginner especially, the easiest road is hosting that installs WordPress and its database automatically, such as Bluehost, which we assessed in the Bluehost review.
Bluehost's Starter plan is $3.79 a month on a 36-month term (renewing at $9.99) with a free domain for the first year and a 30-day money-back guarantee
Start with Bluehost now 🚀
✅ Database FAQ
❓ What is a database, simply?
❓ What is the difference between a database and its management system (DBMS)?
❓ What is the difference between SQL and MySQL?
❓ What is the difference between SQL and NoSQL?
❓ Is Excel a database?
❓ Which database does WordPress use?
❓ What does the message "Error establishing a database connection" mean?
wp-config.php (the database name, user, password or host), the database server being down for a while, or a corrupted database. Start by checking the connection details in the file, and if they are correct, contact your host's support before any other change.❓ Where is my site's database stored?
DB_HOST value in the wp-config.php file.❓ Do I need to learn SQL to build a site?
❓ Can a database be hacked? And how do I protect it?
❓ How big is a WordPress site's database?
❓ What is the best database for beginners?
Related Articles
📝 What is WordPress?
The system that runs on top of your database, and how it powers millions of sites worldwide. Read the WordPress guide
🧰 What is cPanel?
The panel from which you create and manage databases with a few clicks. Read the cPanel guide
🖥️ What is a server?
The machine on which your database and your site's files live. Read the server guide
🌐 What is web hosting?
How hosting works and what you actually get in your plan. Read the hosting guide
🆚 Hostinger review
Plans, resource limits (including the number of databases) and the renewal price in detail. Read the Hostinger review
☁️ Cloudways review
Managed cloud hosting for advanced, high-traffic sites. Read the Cloudways review