What is MariaDB?
MariaDB is an open source, relational database management system (DBMS). MariaDB is licensed under the GNU General Public License version 2 (GPLv2) and is included in most major Linux distributions.
The MariaDB Server codebase can be downloaded from GitHub. The open source license ensures that anyone can freely use, modify, and distribute MariaDB, provided they comply with the GPLv2 terms.
Techopedia Explains the MariaDB Meaning
MariaDB originated as a fork of MySQL in 2009, with a focus on preserving MySQL’s simplicity and performance while also driving innovation in the database landscape.
The name “MariaDB” holds significance as it honors Maria, the daughter of its creator, Michael “Monty” Widenius. This naming reflects not only a continuation of MySQL’s legacy but also a commitment to a community-driven project. MariaDB has grown into a collaborative effort supported by developers and organizations globally.
Beyond its symbolic roots, MariaDB is a practical solution for businesses and developers seeking a robust, open source database management system.
MariaDB Importance
Throughout the years, MariaDB Community Server and MariaDB Enterprise Server have become a popular RDBMS choice for developers, enterprises, and technology enthusiasts. The widespread adoption of MariaDB Server by major Linux distros underscores the database management system’s importance and trust within the tech community.
According to research by Stack Overflow, MariaDB is ranked the seventh most popular database among professional developers.
MariaDB History
When Oracle acquired Sun Microsystems and MySQL in 2010, Michael “Monty” Widenius, one of the original developers of MySQL, was concerned about the future of the open source relational database management system (RDMS) under Oracle’s proprietary stewardship.
In response, Widenius and a number of other MySQL developers decided to fork MySQL. The fork was originally designed to be binary-compatible with MySQL.
This means that at the fork’s inception and for several subsequent versions, applications designed for MySQL could run on MariaDB without the need to alter application code or database schemas.
Over time, however, the degree of strict binary compatibility between the two relational database management systems has diminished.
What’s the Difference Between MariaDB and MySQL?
While MariaDB and MySQL still remain highly compatible at the structured query language (SQL) language level, there are now a number of differences in features, extensions, storage engine options, and performance optimizations that can limit drop-in use.
The table below highlights some of the significant differences between MariaDB and MySQL today.
Feature | MariaDB | MySQL |
JSON Data Handling | Stores JSON in strings. Supports JSON_QUERY and JSON_EXISTS. JSON data type is an alias for LONGTEXT since version 10.2. | Stores JSON as binary objects. Supports JSON_TABLE. Does not support JSON_QUERY and JSON_EXISTS. |
Functionality | Supports invisible columns, sequence storage engines, virtual columns, and the use of multiple engines in one table. | Provides dynamic columns for data values and data masking. |
User Authentication | Includes three validator plugins and the ed25519 authentication plugin for secure authentication. | Includes a validate_password component for password security. |
Encryption | Supports binary log encryption and temporary table encryption. | Allows encryption of redo and undo logs, but not temporary tablespace or binary logs. |
Thread Pooling | Includes thread pooling in the free community edition. | Thread pooling is a paid feature in the enterprise version of MySQL. |
Scalability & Performance | Designed to be scalable and provide high query speed. | Exhibits slower response times in a number of benchmarks and practical setups. |
Storage Engines | Supports a wide range of storage engines, including XtraDB, Aria, MariaDB ColumnStore. | Offers fewer options. |
Oracle Database Compatibility | Supports PL/SQL since version 10.3. | Does not support PL/SQL. |
MariaDB Foundation
MariaDB is overseen by a non-profit organization called the MariaDB Foundation. The Foundation’s contributor community is responsible for maintaining MariaDB documentation, accepting code patches, making sure releases are stable, and fostering collaboration and knowledge sharing about MariaDB among users and developers.
The Foundation plays an important role in guaranteeing that the MariaDB Server remains open and free from the control of any single commercial entity. Funding for the Foundation primarily comes from sponsorships and donations from organizations and individuals that use MariaDB.
MariaDB Corporation
MariaDB plc, formerly known as MariaDB Corporation, is a commercial entity that develops the MariaDB database and sells commercial offerings built on top of the open source MariaDB Server.
The distinction between MariaDB Community Server and MariaDB Enterprise Server is similar to other open source projects that offer both community and enterprise editions.
When discussing or choosing MariaDB for a project, it’s important to specify which version is being referred to, because the choice can significantly impact the available features, support, and overall suitability for a given application or computing environment.
MariaDB Server
MariaDB Server, also known as MariaDB Community Server, is the name of the open source software package for MariaDB that users can install and run for free.
Key features of the MariaDB Community Server edition include:
- SQL and NoSQL Support: Offers comprehensive support for SQL and NoSQL flexible data access patterns.
- Storage Engines: Includes a variety of storage engines, such as InnoDB for ACID-compliant transactions and reliability, MyRocks for efficient storage and performance, and Aria for caching and temporary tables.
- Replication: Supports advanced database replication features, including standard replication from MariaDB and MySQL servers, Galera Cluster for synchronous multi-master replication, and the ability to use different replication formats (such as row-based, statement-based, or mixed).
- Security Features: Comes with strong security features out of the box, including database encryption, secure sockets layer (SSL) support, role-based access control, and audit plugins for monitoring and tracking database activities.
- Query Optimization: Offers advanced query optimization features and indexes, including Javascript Object Notation (JSON) functions, common table expressions (CTEs), and Geographic Information System support for spatial data.
- Compatibility Features: Makes it easier for users to migrate from MySQL to MariaDB by including similar syntax, commands, and APIs.
- Open Source Tools and Plugins: Includes a wide range of tools and plugins for database management, monitoring, and performance tuning.
- Cloud Support: Facilitates deployment in containerized environments by offering support for Docker and Kubernetes.
Use Cases
MariaDB Community Server is a versatile and cost-effective database management system for a wide variety of use cases. Popular use cases for MariaDB Server include:
MariaDB Server vs. MariaDB Enterprise Server
MariaDB Server (aka MariaDB Community Server) should not be confused with MariaDB Enterprise Server, a commercialized DBMS built on the MariaDB codebase.
While the core of MariaDB Enterprise Server is open source, the enterprise server package includes proprietary components and plugins developed by MariaDB plc (formerly MariaDB Corporation).
Here’s a comparison chart that outlines the key differences between MariaDB Server and MariaDB Enterprise Server:
MariaDB Server | MariaDB Enterprise Server | |
Licensing | Freely available under the GNU General Public License. | Requires a paid subscription. |
Core Features | Includes standard DBMS features suitable for most applications. | Includes all features of MariaDB Server plus additional enterprise-focused enhancements. |
Performance and Scalability | Known for performance and scalability. | Optimized for enterprise workloads. |
Security | Offers standard security features. | Offers advanced security features tailored to enterprise requirements. |
Tools | Provides basic tools for backup and monitoring. | Provides a variety of storage engines for enterprise needs. |
Support and Services | Community support through forums and documentation | Professional 24/7 support, consultancy, and training services from MariaDB plc. |
Target Audience | Developers, enthusiasts, and organizations looking for an open source database. | Businesses and enterprises that require a robust database solution with commercial support. |
Target Use Case | Developers, small to medium businesses, and cost-conscious implementations in non-critical environments. | Tailored for critical business applications and workloads that require high reliability, performance, and 24/7 support. |
How to Install MariaDB Server
MariaDB Community Server and MariaDB Enterprise server are designed to be cross-platform.
While the core concepts of MariaDB remain consistent in Linux, Microsoft Windows, and macOS platforms, the tools and methods required to deploy and manage the database can vary significantly due to differences in file systems, default security settings, command-line tools, and system services.
The official MariaDB website provides detailed installation guides, configuration instructions, and best practices for specific operating systems. The community has invested a lot of time and effort in documenting how users can correctly install, configure, and maintain their MariaDB installations regardless of the underlying platform.
MariaDB’s ColumnStore
MariaDB uses row-based storage as its default mode of data organization. This approach is well-suited for transactional data, but it is not efficient for data warehousing and business analytics purposes.
MariaDB addresses this problem by providing users with the option of installing and using a ColumnStore engine that improves query performance over large datasets.
ColumnStore organizes data by columns rather than rows. Each column of data is stored separately, which is ideal for OLAP (Online Analytical Processing) applications and massively parallel processing (MPP).
Essentially, it allows queries to be distributed across multiple nodes for faster processing, which is particularly beneficial for real-time analytics and big data applications.
The ability to choose between InnoDB and ColumnStore (or even use both within the same MariaDB instance for different tables) allows MariaDB to be used for a wide range of database applications effectively.
Query Examples
All MariaDB queries, regardless of the underlying storage engine (row-based or ColumnStore), use standard SQL syntax. This uniformity means that developers can apply their existing SQL knowledge to work with MariaDB, and transition between transactional and analytical workloads without needing to learn a new query language.
The following query examples cover basic operations in MariaDB and SQL in general.
Create Table
This example demonstrates how to create a table for storing user information.
This query creates a table named users with four columns: id (a unique identifier for each user that auto-increments), username (the user’s name), email (the user’s email address), and created_at (a timestamp for when the user was created).
Insert Data
This example shows how to insert a new user into the users table.
This query inserts a new row into the users table with the username john_doe and the email [email protected]. The id column will auto-increment, and the created_at column will default to the current timestamp.
Query Data
This example demonstrates how to retrieve posts that belong to a specific user, assuming the posts table has a foreign key user_id that references the id in the users table.
This query selects the title, content, and creation timestamp of all posts made by the user with the username john_doe, ordering the results by the created_at timestamp in descending order, showing the most recent posts first.
FAQs
Are MariaDB and MySQL the same?
What is MariaDB used for?
Is MariaDB owned by Oracle?
Has MariaDB replaced MySQL?
References
- MariaDB/server (GitHub)
- GNU General Public License, version 2 (Gnu)
- MariaDB Community Server (MariaDB)
- MariaDB Enterprise Server (MariaDB)
- Stack Overflow Developer Survey 2023 (Stack Overflow)
- Oracle (Oracle)
- Michael Widenius Biography (Pantheon World)
- MariaDB Server: The open source relational database (MariaDB)
- Why sponsor us? (MariaDB)
- MariaDB Community Server (MariaDB)
- Galera Cluster for MySQL (Galera Cluster)
- MariaDB (predictiveanalyticstoday)
- Get the code, build it, test it (MariaDB)
- SQL Syntax (W3Schools)