MariaDB

Why Trust Techopedia

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

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:

Key Features of MariaDB Server

  1. SQL and NoSQL Support: Offers comprehensive support for SQL and NoSQL flexible data access patterns.
  2. 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.
  3. 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).
  4. 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.
  5. 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.
  6. Compatibility Features: Makes it easier for users to migrate from MySQL to MariaDB by including similar syntax, commands, and APIs.
  7. Open Source Tools and Plugins: Includes a wide range of tools and plugins for database management, monitoring, and performance tuning.
  8. 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:

Web Applications and Websites

MariaDB is commonly used as the backend database for web applications and websites to store user data, posts, settings, and other dynamic content. It supports a wide range of programming languages, such as PHP, Python, Java, and Ruby, and its compatibility with MySQL means it works seamlessly with popular web development stacks like LAMP (Linux, Apache, MySQL, PHP) and MEAN (MongoDB, Express.js, Angular, Node.js).

E-commerce Platforms
Hidden content

Spoiler title
MariaDB offers the performance and features necessary to handle large volumes of transactions and customer data. Its ability to scale and support replication helps ensure that e-commerce sites can remain responsive and available, even during peak traffic times.
Content Management Systems (CMS)
Many popular CMS platforms like WordPress, Drupal, and Joomla are compatible with MariaDB. Publishers can use the relational DBMS to store and manage website content, user profiles, comments, configuration data, and custom data types. MariaDB’s performance optimizations are known for delivering web content efficiently and improving the user experience on content-rich sites.
Cloud Applications
MariaDB’s compatibility with cloud environments makes it an excellent choice for cloud-based applications. The RDBMS’ ability to handle large databases and scale horizontally, especially when combined with features like Galera Cluster for synchronous multi-master replication, ensures high availability and data durability in AWS, Google Cloud, and Azure cloud environments.
Enterprise Applications
Large enterprises can use MariaDB for their internal enterprise resource planning (ERP), customer relationship management (CRM), and custom enterprise applications that require a reliable database system.
Gaming Applications
MariaDB’s performance and scalability support the high throughput and low latency requirements of gaming applications. The RDBMS can be used for user authentication, session management, leaderboards, and storing game state data.
IoT Applications
MariaDB can be used to store and process data from sensors and edge computing devices. Its ability to handle high volumes of small transactions makes it suitable for real-time monitoring, monitoring event logging, and decisions that involve time-series data.
Financial Services
MariaDB can provide the reliability, security, and transactional integrity needed for applications like online banking, payment processing, and fraud detection. Its advanced cybersecurity features can help protect sensitive financial data in compliance with industry regulations.

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.

Create Table

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.

Insert Data

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.

Query Data

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?

Related Questions

Related Terms

Margaret Rouse
Technology Expert
Margaret Rouse
Technology Expert

Margaret is an award-winning technical writer and teacher known for her ability to explain complex technical subjects to a non-technical business audience. Over the past twenty years, her IT definitions have been published by Que in an encyclopedia of technology terms and cited in articles by the New York Times, Time Magazine, USA Today, ZDNet, PC Magazine, and Discovery Magazine. She joined Techopedia in 2011. Margaret's idea of a fun day is helping IT and business professionals learn to speak each other’s highly specialized languages.