State of MariaDB 2025 Survey
Welcome to MariaDB Foundation’s first State of MariaDB Survey! Our goal is to understand who our users are and how they use MariaDB, in order to better fulfil our key values of adoption, openness, and continuity.
A downloadable 37 page PDF is also available here.

1. Summary: Twelve top observations
There are many insights provided by the survey. We now have objective data with much less bias than the anecdotal evidence relied upon even by the most knowledgeable individuals on the MariaDB Foundation Board. For example, we will now be able to settle the long-standing argument about where, and what version, users obtain their MariaDB packages for production use (see item 4).
❝
The ability to use a vector index has been valuable to our customers because of how RAG is used in their solution.
Here is a compressed form of our key findings:
- The MariaDB users answering the survey are in general very experienced, with 60% having over 15 years of IT experience and using MariaDB for at least 5 years. This is not completely representative of the user base, but so far the best sample.
❝
Postgres offers a wider range of features, but nothing specifically relevant comes to mind at the moment
- MariaDB usage is growing, based on organic application growth, on standardisation towards MariaDB, and on a desire to move off MySQL
- MariaDB is chosen because of it being Open Source, because of performance, reliability, and ease of use, and because of compatibility with MySQL.
- For production usage, the Big Three are MariaDB provided Linux packages, tightly followed by packages from Linux distributions, in turn tightly followed by the Docker Official Images.
- Over 70% of users have encountered no MySQL compatibility issues. The remaining ones have seen differences in performance, SQL behaviour and connectors or ORM / framework compatibility.
- PHP ranks above Python as the most frequently used development language with MariaDB, followed by JavaScript / Typescript, Java, Go, C#, C, C++, Ruby, Rust, and Perl.
- Connectors used with MariaDB are not always provided by MariaDB but often by independent providers (MySQLi and PDO for PHP). Within the Python, Java, C, C++, and ODBC communities, MySQL provided connectors have a share from around 10% to 30%.
- The largest ORMs in use with MariaDB are Laravel (PHP), SQLAlchemy (Python) Django (Python), Doctrine (PHP) Spring (Java), Hibernate (Java), and Prisma (Node.js, TypeScript).
- Of the tools used with MariaDB, the MariaDB command-line interface is the leader, followed by phpMyAdmin, HeidiSQL, DBeaver, Adminer and MySQL Workbench.
- Of the applications used with MariaDB, WordPress is the leader, followed by NextCloud/ownCloud, MediaWiki, Drupal, GitLab, Moodle, Zabbix, Joomla, PrestaShop and Cacti.
- 19% are using MariaDB in an AI application. This includes usage of MariaDB Vector, introduced as GA only in December 2024.t. Among the AI platforms and frameworks used with MariaDB, OpenAI, Ollama, Gemini, Claude, Langchain, MCP, and HuggingFace rank highest.
- The biggest challenges faced by MariaDB users are resolving performance issues, managing backups and restores, and high availability.
❝
Migrating from Oracle and MySQL to MariaDB
2. Methodology
Our role model was the PostgreSQL 2024 survey (https://www.tigerdata.com/state-of-postgres/2024). By using the PostgreSQL survey as a role model, we may achieve some level of comparability. However, the main goal was to use phrasing and structure which conform to user expectations. Here, PostgreSQL is the closest comparable user base.
After adapting the questions to a MariaDB perspective, we implemented the questions using the tool Typeform, which was also used by PostgreSQL.
In order to understand what channel of communication triggered our respondents to answer, we postfixed each URL we linked in various pieces of communication with a parameter, utm_source. Out of a total of 275 replies, 209 (or 76%) contained this utm_source parameter.
Of the various channels in which we published the survey, most (47%) are specific to MariaDB Foundation (Label A: our web site, our blogs, our Zulip channel, our mailing lists, lists of former event participants), others (32%) represent user base categories (Label B: Drupal, Wikimedia, Django, moodle, WordPress, cPanel, Joomla, PHPbb), and many (16%) were to some extent social media like (Label C: LinkedIn, Reddit, Fosstodon, Zulip, GitHub). There were stray other categories (Label D, 7%). The 66 submissions without a source were due to human error, and likely mostly stem from a missing mariadb.org link, hence counting towards the biggest category, “Specific to MariaDB”.
The categorisation into the three main categories contains some judgement calls. For instance, we give the user base category precedence. Hence, the Drupal, Django, and cPanel announcements that happened over their discord channels do not show up in the “social media” statistics. Also, we put responses from our Zulip discussions into the specific to MariaDB category, as we didn’t expect most of our Zulip visitors to be on many Zulip channels besides that of MariaDB (and we only shared the invitation on MariaDB’s own Zulip, not on any other).
We disclose our channels for the audience to be able to judge the validity of the results. The numbers certainly also contain a number of internal lessons for us, which we will use for the next iteration of our survey. But primarily, the utm_source distribution can help assess potential biases in the representation of various user categories. We believe there aren’t any significant ones.
We declared to keep the survey open during October 2025. We silently kept it open until Friday 10 November 2025, in the hope of one more campaign (external to MariaDB Foundation) adding a significant number of answers. That campaign didn’t happen.
We feature a large number of the user responses. We made a few minor grammatical edits (eg. capitalisation, punctuation) to them, but did not change the wording. We highlight some of the responses as separate quotes, throughout the report – intentionally without a tight coupling to the subject matter of that section:
By the time we closed the survey, we had collected a total of 275 responses from 36 different campaigns, falling somewhat (8%) short of our set-out goal of 300 responses.
Some questions allow multiple responses. This means such numbers can add up to more than 275, and the percentages consequently also add up to more than 100%.
3. Demography
3.1 Where are you from?
We asked in 1a: What is your primary geographical location? (271/275 answers)
Compared to our other sources about the distribution of the user base, the survey had an overrepresentation of Europe (176 responses, 65%) before North America (46 responses, 17%) and Asia (21 responses, 8%).
❝
People only know about MySQL, so even though MariaDB provides much better features, it is still less known.
3.2 How long is your IT experience?
We asked in 1b: How many years have you been working in tech? (265/275 answers)
Respondents to the State of MariaDB 2025 Survey generally have a long experience in tech.
3.3 How long is your MariaDB experience?
We asked in 1c: How long have you been using MariaDB? (264/275 answers)
The number of years of experience with MariaDB peaks at 5-10 years.
3.4 What is your role?
We asked in 2a: What is your current profession or job status in relation to MariaDB at work? (249/275 answers)
Developers outnumber DBAs amongst the respondents. Multiple answers were allowed, and the distribution between the responses is both granular and fairly evenly distributed. Taking a detailed look at the distribution of the answers in the attached table helps assess the profile of the users.
Out of the “Other” responses, we note “SRE” and “Security researcher”, as well as “CEO, but I still work on tech whenever I can”.
4. Usage of MariaDB
4.1 Is your MariaDB usage growing?
We asked in 2b: Compared to last year, is MariaDB being used more or less in your organisation? (272/275 answers)
The respondents mostly (60%) use MariaDB about as much as last year, with those using it more (31%) outnumbering those who use it less (10%) by a factor of 3.
When looking into the 77 answers as to why the usage has changed, some trends emerge.
4.1.1 More MariaDB usage, because of overall growth: Organic growth of the business or the application already running MariaDB is a key reason for using MariaDB more. Quote: “We have more clients that’s why using more MariaDB instances.“
❝
MySQL just continues to decline. MariaDB is an easy lift.
4.1.2 More MariaDB usage because of migration
off MySQL: Another key trend in MariaDB growth is migration from MySQL to MariaDB. The reasons for this are related to a desire to move away from MySQL and the low threshold in moving to MariaDB. Quotes:
- “MySQL just continues to decline. MariaDB is an easy lift.“
- “Migrating from MySQL..looking for zero code change.”
- “Oracle Political Stance”
- “When the decision was taken to move to RDS we tested all flavors: MariaDB, Aurora & MySQL and concluded MariaDB was best for us.”
4.1.3 More MariaDB usage because of migration off Oracle and other databases: There is even one instance of moving off PostgreSQL, which otherwise is the main reason for less usage of MariaDB:
- “Migrating from Oracle and MySQL to MariaDB“
❝
We switched from MySQL to MariaDB and discarded the support for MySQL
4.1.4 More MariaDB usage because of standardisation towards MariaDB: Standardisation comes in two categories – convergence towards MariaDB internally within the organisation, and using products that use MariaDB. Quotes:
- “We are converging all systems to MariaDB”
- “Our last generation hosting platform was based on cPanel with mysql, we are moving to a new platform with mariadb as the default choice for databases”
- “Due to it integrating better with Plesk”
- “More wikis using it”
- “New microservices using mariadb as their database were deployed.”
- “We prefer to rely on MariaDB for WordPress projects”
- “More docker containers that use MariaDB”
- “We promote MariaDB and migrate people to it”
- “A specific project for a client required intensive work with MariaDB”
- “We switched from MySQL to MariaDB and discarded the support for MySQL”
4.1.5 More MariaDB usage because of functionality in MariaDB: The main reason here is MariaDB Vector enabling AI applications of the RAG type. Also traditional MariaDB values (performance, stability, high availability) are quoted.
- “since the introduction of vector and semantic search, MariaDB got a bigger role”
- “The ability to use a vector index has been valuable to our customers because of how RAG is used in their solution.”
- “speed and replication for the better”
- “More call for highly available solutions utilising Galera”
4.1.6 Less MariaDB usage because of PostgreSQL usage: The single most frequent reason for using MariaDB less is convergence towards PostgreSQL
- “Companies moved to PostgreSQL and MySQL”
4.1.7 Less MariaDB usage because of other reasons: Stray other reasons include migration to other databases (Firebase, MongoDB) and staying with MySQL in cases where it outperforms MariaDB. Also, lack of MariaDB awareness is a reason we note.
- “MariaDB awareness is very less, people only know about MySQL so even though MariaDB provides much better features it is still less known.”
4.2 Do you use MariaDB for personal or business use?
We asked in 3a: Do you use MariaDB for personal or business use? (252/275 answers)
We note what we consider a healthy distribution of business and personal usage. Half of the respondents use MariaDB for business only, and 13% for personal usage only – the rest answer “both”.
4.3 What’s your use case?
We asked in 3b: How would you classify your personal or professional use cases? (240/275 answers, multiple selection allowed).
While our choice of use cases to be selected from could certainly have been structured in many ways, a key insight is that web development is king, followed by analytics, finance, and AI/ML. The interesting “other” responses include “as back-end for scientific computations, non-ML” and “games”.
❝
Keep up the good work and protect the FOSS at all costs!
4.4 Why did you pick MariaDB?
We asked in 3c: What is the main reason you chose to use MariaDB over other options? (250/275 answers, multiple selection allowed)
Well over half chose MariaDB because of Open Source. Nearly half cite the compatibility with MySQL and familiarity as key reasons. Other top reasons include the familiar trio of performance, reliability, and ease of use. Worthy of mentioning are also the Storage Engines, security, and the vector capabilities.
In the “other” category, we note MariaDB as a required component in software used, good documentation, and Galera.
4.5 Which versions of MariaDB do you use in production?
We asked in 5a: What versions of MariaDB do you use at the moment? (223/275 answers, multiple selection allowed)
Our conclusions
- The respondents are mostly on relatively new Long-Term Support releases, with the freshest one (MariaDB 11.8) being used by 38%, just short of MariaDB 10.11 being used by 42%.
- Unmaintained releases are in use by 28% of the respondents, with 5% even mentioning “MariaDB 5.5 or older” (where MariaDB 5,5 was introduced as GA in February 2012).
- Non-LTS releases are also in use by 25% of the respondents, most of which (16%) are on the newest 12.x release.
For reference
| MariaDB Version | GA introduction |
|---|---|
| 5.5 | Feb 2012 |
| 10.4 | Nov 2018 |
| 10.6 | Apr 2021 |
| 10.11 | Sep 2022 |
| 11.4 | Dec 2023 |
| 11.8 | Dec 2024 |
4.6 When do you upgrade your MariaDB?
We asked in 5b: How frequently do you upgrade your MariaDB production installations? (210/275 answers, multiple selection allowed)
Key conclusions
- LTS series provide a valuable option for users.
- Distribution supported versions are a key leader in used versions
- Upgrades are generally avoided/deferred (“within 6 months of GA” << “force to resolve” + “reinstall” + “after 6 months”)
4.7 How do you deploy (or host) MariaDB?
We asked in 5c: What hosting/installation method do you primarily use for MariaDB in production? (231/275 answers, multiple selection allowed)
❝
The GNU/Linux distribution provides me with compatible versions of software and security fixes.
Key conclusions
- MariaDB provided Linux packages is the main method of deploying MariaDB in production, with 44%.
- Distribution provided Linux packages are nearly as frequent, with 40%.
- Cloud deployments come in various forms, together counting for 40% of respondents.
- Docker Official Images, i.e. a container distribution, is the last of the “Big Three” methods to deploy MariaDB in production, with 34%.
- Windows and macOS are seldom used in production, with Windows MSI (8%) leading over macOS homebrew (6%) and Windows ZIP archive (4%).
- Linux tarballs are not frequently used in production (7%).
- MariaDB Cloud (SkySQL) is not yet used much (2%).
We also asked: Why did you choose the previous option(s)?
Out of the 121 that commented, the majority run on Linux and do it mainly out of “ease of use/convenience”. Top reasons for cloud users are between Ease of Use and Technical Requirements. Those that run on Mac or container run it for development purposes before deploying elsewhere.
We grouped the responses along the deployment platform given as response to our question 5c. “What hosting/installation method do you primarily use for MariaDB in production?” grouped by deployment platform:
❝
Our company has a support contract, so I believe we need to use packages from either the Foundation or Plc.
1. Linux – MariaDB provided packages via repository: These users prefer MariaDB’s official repos for newer versions, better control, enterprise support, or avoiding distribution lag. Quotes:
- We host the servers ourselves on virtualised machines in our servers.
- Allows for simpler self-hosted management of releases and ties into automation cleanly
- I can get the exact version I want
- Keeping things simultaneously simple, flexible and performant, with a minimal number of moving parts.
- Install by scripts
❝
I’m more comfortable letting MariaDB update their packages.
- easy installation
- For convenience
- Simple
- historical reasons and ease of management
- Easy to maintain
- Simpler to use, consistent version across servers/clients
- ease of use, TTM
- dnf install mariadb-server is the easiest and I don’t have to check for update myself.
- DevOps decision
- We have enterprise licensing
- We run on-prem and don’t want to containerize DBs.
- Our company has a support contract, so I believe we need to use packages from either the Foundation or Plc.
- Entreprise policy ensuring best control/cost/regulatory conformance/performance
- Maria’s EL repos work well for us.
- Cloud versions of MariaDB has not been very reliable
- I’m more comfortable letting MariaDB update their packages.
- RHEL packages too old, so we prefer the RPM from MariaDB directly.
- Stability of versions
- I am a hosting provider. I use hosting control panels like cPanel, Webuzo, DirectAdmin, etc. to install MariaDB
❝
RHEL packages too old, so we prefer the RPM from MariaDB directly.
2. Linux – Distribution packages (apt, dnf, zypper): These users rely on distribution-provided packages for stability, security, ease of maintenance, and integration with OS updates. Quotes:
- Because Cloud-Stuff and Microsoft-Products are trash 🙂 All the way Linux <3
- Easy to upgrade and control
- Simplest approach, and we have some control as we typically have a number of versions available, so can mask versions that doesn’t work for us (which doesn’t happen frequently).
- Most flexible
- It’s what I do. My cloud is in my basement.
- I’m a Debian GNU/Linux old-timer
- Ease of use
- I’m lazy
- Because MariaDB is well maintained by distros.
- Less repos to sync and avoid regressions
- The GNU/Linux distribution provides me with compatible versions of software and security fixes.
- Windows and Docker for developments. linux debian for production
- I manage a bare metal server and following the distribution provided package is secure, efficient and convenient
- secure, transparent, vendor-independent
- stable
- to have installation consistent during OS updates
- stability, security
- We/I try to have the database deployed the same way as the app(s) using it (e.g., distro repos for LAMP, Docker image for Docker apps, etc.)
❝
MariaDB is well maintained by distros
3. Container – Docker Official Image: These users leverage Docker for ease of deployment, portability, simplicity, and modern infrastructure practices. Quotes:
- Own Hosting solution – https://github.com/wunderio/silta
- We only use dockerized versions, deployed in Azure. Better control and cost optimized
- Docker makes things nice, just nice
- easy to deploy
- Simple
- Previous experience with Docker
- Convenience
- The incredible convenience of Docker
- Portability and ease in upgrading versions
- Ease of use
- It is convenient and the easiest to get support and find resources.
- I use apt based Linux to host my apps. Docker is my new go to as it is so easy to deploy
- Ease of installation and updating. We use our own servers and clouds
- Enterprise policy ensuring best control/cost/regulatory conformance/performance
- Because we use it via homebrew on the developers’ computers and we use containers in production.
- AWS RDS because other services are there. Docker for self-hosted instances.
- Was using Bitnami Galera for HA purposes and Official community image for simple one node setups. I am migrating to official community image for HA also since Bitnami is going to the dark side
- Main workloads are in Kubernetes. Containers rule.
- We/I try to have the database deployed the same way as the app(s) using it (e.g., distro repos for LAMP, Docker image for Docker apps, etc.)
- Docker for ease of deployment, others for testing.
- Windows and Docker for developments. linux debian for production
❝
Main workloads are in Kubernetes. Containers rule.
4. Cloud – Self hosted/managed. These users want full control, flexibility, cost optimization, and regulatory compliance on their own cloud infrastructure. Quotes:
- Control, cost, staff confidence
- Familiarity, control
- what the applications required or what was there already.
5. Cloud – AWS RDS.These users choose AWS RDS for managed service convenience, ease of use, and integration with AWS ecosystem.
- Portability and ease in upgrading versions
- ease to setup multi AZ for HA
- We are part of the AWS RDS
- AWS RDS because other services are there. Docker for self-hosted instances.
6. Cloud – Shared hosting provider: Users on shared hosting have limited control over installation method.
- I host my sites at a WordPress hosting company.
❝
Our last generation hosting platform was based on cPanel with MySQL, we are moving to a new platform with MariaDB as the default choice for databases
7. Windows – MSI installer. Windows users needing centrally registered service installations.
- On Windows, MSI packages make sense for a centrally registered installation of a service.
- Windows and Docker for developments. linux Debian for production
- Testing different versions/builds on different OSes is needed for my job
8. Windows – ZIP archive. Windows users needing portable or custom installations.
9. macOS – Homebrew. Mac users leveraging Homebrew for convenience and development environments.
- Install by scripts
- quickest on Mac
- secure, transparent, vendor-independent
- I run development versions of my WordPress sites on my MacBook Pro M4 Max using Homebrew.
- We use MariaDB via homebrew on the developers’ computers and we use containers in production.
10. Linux – Tarball/binary distribution. Users needing specific versions or custom builds not available in repos.
- Linux distributions are not updated with recent versions
- Because I install it in different ways and different environments for learning, for experimenting, and obviously for customers
- Depends on whats available for the current version I need or want
- Testing different versions/builds on different OSes is needed for my job
❝
Linux distributions are not updated with recent versions
11. Container – Other provider (e.g., Bitnami). Users using alternative container providers, often migrating away from them.
- Was using Bitnami Galera for HA purposes and Official community image for simple one node setups. I am migrating to official community image for HA also since Bitnami is going to the dark side
12. Cloud – Other: Users on other cloud platforms or managed providers.
- Ability to manage upgrades myself. Provider-managed hosting tends to lag behind in upgrading. Cost.
13. Bare metal / Own infrastructure: Users emphasizing complete control and privacy on physical hardware.
- privacy (bare metal)
14. FreeBSD self hosted. FreeBSD users managing their own servers.
- FreeBSD is great. And we have our own servers. We handle everything ourselves
15. Custom/Multiple deployment methods. Users deploying across multiple platforms for testing, development, or varied client needs.
- Enterprise policy ensuring best control/cost/regulatory conformance/performance (Container – self-made in our CI from official image)
- Own installer/MSI (It wasn’t me)
- self-built from source (depends upon the situation)
- my own custom builds (Testing different versions/builds on different OSes is needed for my job)
- State sponsored grants (Red Star OS)
5. MariaDB vs. other databases
5.1 Which other databases do you use?
We asked in 3d. What other databases in addition to MariaDB do you use? (244/275 answers, multiple selection allowed)
MariaDB coexists with lots of other databases. It makes sense to us that the list is led by three other Open Source RDBMSes, with the most different ones (PostgreSQL, SQLite) before the most similar one (MySQL).
Amongst the “Other” answers, we note multiple mentionings of CouchDB, Elastic, Redis, Informix, Cassandra, Druid, Clickhouse, and DynamoDB, and individual mentions of DB2, Valkey, Virtuoso, KeyDB, OpenSearch, FerretDB, CockroachDB, InfluxDB, DuckDB, Firestore, Manticore, Percona, 4D, Pinecone, and SpacetimeDB.
5.2 What do you miss from MariaDB?
We asked in 3e. Based on your previous answer: What specific features or capabilities are not available in MariaDB that you need from other databases? Was your database missing from the list? (122/275 answers)
We are here reporting the answers in individual sections for the database under which they were mostly mentioned.
That said, there is a common denominator: The request for better JSON support. This is missed by users of MySQL, PostgreSQL, MongoDB, Oracle, and SQLite alike:
- richer native JSON APIs (MongoDB, SQLite)
- Full native JSON support (MySQL, PostgreSQL)
- JSON queries (MySQL)
- functions for interacting with json in rows (PostgreSQL, MongoDB, SQLite)
- Working with json functions is too slow (MySQL, PostgreSQL, MongoDB, SQLite)
- Store and search large json documents (MongoDB, SQLite)
- JsonB. (PostgreSQL, Oracle)
Some consider the missing JSON support a thing of the past, with MariaDB’s JSON support now apparently being sufficient:
- The main reason for PostgreSQL has been the support for JSON data, luckily that is not a reason anymore. (MySQL, PostgreSQL, SQLite)
We will start our database specific overview with MySQL, followed by PostgreSQL and the other databases..
5.3 MariaDB vs. MySQL
Given the overall state of MySQL at Oracle, a detailed understanding of the compatibility between MariaDB and MySQL is more important than ever.
❝
I’m a happy MariaDB user and I feel MariaDB deserves to be more widely recognized.
Ever since the inception of MariaDB as a fork of MySQL, user expectations on MySQL compatibility are justifiably high. Hence, beyond the 3e question in the survey, we were quite a bit more specific.
We asked in 4g. Have you encountered MySQL compatibility issues when using MariaDB? (238/275 answers)
We asked for specifics in 4h: If you experienced compatibility issues, please describe them briefly (41/275 answers). Below, we also add the MariaDB answers from the generic 3e question about missing features.
5.3.1 Our top conclusion is that no compatibility issues is the overwhelming top response, with over two thirds of the respondents (70%). This is a remarkably high percentage, given that the remaining 30% frequently reported compatibility issues that were already resolved.
❝
Migrating from MySQL .. looking for zero code change.
5.3.2 Performance differences was the top reported issue. The testimonies came in a number of categories. Some were resolved quickly:
- “Old subject, small tuning solved the issue(s)”
- “Some queries were slower, fixed any adding indexes“)
Others were edge cases:
- “Few, peculiar queries had to be rewritten to speed up, or because was so absurd that crashed the server“.
- “Difference in performance using group by”
- “We see with MariaDB some race conditions from time to time that are temporal when a table gets locked improperly and queries get backed up. The fix has been a watchdog to kill those queries when they happen.”
Most responses were quite general:
- “Different index selection affecting performance, some better some worse”
- “Optimiser occasionally makes poor choices”
- “Some cases where MySQL chosen a better plan, particularly with subqueries and joins”
- “Performance anomalies / different execution plans”).
One performance issue was critical:
- MDEV-22054 “Very bad performance MariaDB vs MySQL“
Some referred to performance issues in past releases:
- MariaDB 10.11 had some very bad query plans when no good index was available.”
5.3.3 The syntactic / behavioural differences were few: JSON
- “Some json syntax is different”,
- “json vs text column type”
Missing functions
- “MariaDB does not have
BIN_TO_UUIDandUUID_TO_BIN“ - “Some UUID functions do not exist in MariaDB compared to MySQL”
full-text search
- “just differences in indexes, triggers, full text index behaviours”
- “lack of FTS ngram in MariaDB”
- “MySQL’s FULLTEXT ngram search”
- “more advanced full-text search (like in Sphinx/Manticore)”
window functions
- “small things. window functions and similar.“
and setup/configuration differences
- “Some system variables are different”
- “installation and user creation assumptions about the mysql.user table”
- “user management”
- “Haven’t tried but I suspect security features like ROLES behave differently”
- Drift from MySQL; occasional minor app compatibility glitches
Indexed repeated fields not supported.
- Indexed repeated values
- Indexed repeated fields not supported
❝
Some UUID functions do not exist in MariaDB compared to MySQL
High Availability HA differences
- “Galera sst is not reliable”
- “Group Replication”
Some syntactic issues mentioned are solved in MariaDB 11.4 onwards (UTF incompatibilities).
- “Utf8 related”
- “The major issues I have between MySQL and MariaDB are the different collations for utf8 handling…”
Function differences
- “Some apps rely on MySQL only functions (may be available as UDF in MariaDB or not), like encryption”
- “I am working on a project in MySQL its shows hex false that is Ox00 but in MariaDB its empty not showing anything but working as expected. I am using JPA with springboot.”
5.3.4 The Connector issues were related to Perl
- “I forget details, but perl DBD:MariaDB wasn’t as well supported with MariaDB as DBD:MySQL“),
C#
- MDEV-26105 “MariaDB 10.6 cannot be used from C# client applications” [^1]
Python
- “Mariadb Python connector does not support asynchronous programming.“[^2]
5.3.5 The ORM/framework issues mentioned Ghost
- Ghost CMS
- Ghost Forum
and Hibernate
- “Can’t remember the details, but something about Hibernate not supporting MariaDB stored procedures? Found a workaround.”
❝
We promote MariaDB and migrate people to it
5.3.6 A particular category of incompatibilities refer to MariaDB tools being used with MySQL Server. This category may even be theoretically unsolvable by MariaDB, if changes in MySQL would be required. It tells us what expectations users have on compatibility
- “Certain versions of MariaDB client software/libraries could not connect to MySQL 8.x due to missing authentication plugin for that MySQL version.”
- “When I ran MariaDB’s mysqldump against a MySQL 5.6 server, it failed to produce a dump.”
5.3.7 MySQL 8.0 onwards isn’t file-level binary compatible with MariaDB, requiring dumps.
- “Binary/file format; when trying to do an automated migration we ended up having to start from an empty database and use the app’s built-in restore from a backup“
5.3.8 Perception issues form another special category, affecting proper expectation setting on the nature of MariaDB. The term “drop-in replacement” was frequently used when MariaDB was first forked, but that term is no longer appropriate.
- “Features developed after the MariaDB fork are diverging between MySQL and MariaDB”
- “Drifted away from drop-in mysql“).
The opposite is also a problem, i.e. false claims of incompatibility
- “Claim by the consultant that their applications isn’t compatible on MariaDB.”)
The actual experiences reflect easily solved issues
- “Mostly dialect issues, nothing major and not a problem“
- “Found a workaround.”
5.3.9 Tool set differences
- “A graphical tool, stable, with DD, etc, for MariaDB, like MySQL Workbench”
❝
The major issues I have between MySQL and MariaDB are the different collations for utf8 handling… [^3]
5.4 MariaDB vs. PostgreSQL
For this comparison of MariaDB with PostgreSQL, we rely on the replies of users also using PostgreSQL responding to our question 3e: What specific features or capabilities are not available in MariaDB that you need from other databases?
5.4.1 Users also using PostgreSQL mentioned features missing from MariaDB:
- deferred constraints, nested transactions
- Postgres offers more control and data types
- materialized views
- Materialized views, partial and expression indexes, native JSONB support with advanced indexing.
- While MariaDB provides the bare minimum of GIS functionality it is of no actual use, especially not when compared to PostGIS
- PostGIS
- order by gis distance
- stricter enforcement of constraints (like “NOT NULL”)
- conforming to ANSI-SQL, supporting modern syntax and especially analytics queries,
- Postgres for complex queries
5.4.2 Architecture and licensing
- more flexibility and easier plugin/extension system
- easy of setting up a cluster
- seamless integration with Vercel like Neon
- more open license
- being Neutral politically
- easy separated data directories (i.e. for backup), easy administration
5.4.3 Performance / Architecture
- Explain is pretty lacking in mariadb (see Postgres’s)
- speed
- Connection pooling for high concurrency.
- Guaranteed crash recovery. I.e. backups by just snapshotting the storage device.
- Postgres provides more functionality and a more robust replication setup, but is more complex
- metadata updates that don’t take months to perform
❝
Some third party software we use require PostgreSQL
5.4.4 Compatibility with third-party products
- Some software don’t support MariaDB/MySQL e.g. NetBox
- PostgreSQL was a requirement in a project, that’s why we use it.
- Some third party software we use require PostgreSQL or support only SQLite
- various apps I use use a different DB
- App compatibility (e.g. some apps require PostgreSQL and don’t support MySQL)
5.4.5 Perception issues include MariaDB not perceived to have MVCC, or MariaDB having got vector support later than PGVector. Also a generic hype is mentioned.
- MVCC
- Vectors and high-end features of Postgres
- AI Grok
- Plus an extreme hype around Postgres.
- Always given me what I needed
- Postgres offers a wider range of features, but nothing specifically relevant comes to mind at the moment
5.5 MariaDB vs. Oracle
We got few responses about Oracle when asking for specific features or capabilities missing in MariaDB.
5.5.1 Performance
- Oracle- was already there used by monolith and is a bit more performant.
- better scalability
5.5.2 Functionality
- Partial indexes & system managed partitions
5.5.3 High Availability
- clustering options
5.5.4 PL/SQL: MariaDB does support PL/SQL, but a subset thereof (eg. all PL/SQL functions used by DBS Bank in Singapore). However, some are missing:
- Full Oracle PL/SQL support
5.5.5 Observability
- More embedded performance metrics (AWR, ADDM Oracle like)
5.6 MariaDB vs. SQL Server
There were more comments around Microsoft SQL Server:
5.6.1 Reporting functionality
- SQL Server Reporting Services far excels other reporting software.
5.6.2 Third party compatibility
- Some of our applications do not support MariaDB, but require Microsoft SQL Server.
- MSSQL compatibility for Windows softwares.
5.6.3 Features
- Filtered indices
- specific MSSQL feature (tracking changes)
- Multiple result sets with one DataReader
- without specifying there are features in SQL server I can miss in MariaDB, but the opposite is also true
- The declaration and use of table variables are not yet supported in MariaDB, but they are available in MSSQL
OUTER APPLY
5.6.4 Observability
- Better statistics for query performance analysis. Slow query log is not enough
5.7 MariaDB vs. other databases
Here are a few replies to 3e: What specific features or capabilities are not available in MariaDB that you need from other databases? grouped by the database used:
5.7.1 MongoDB
- connector ability to choose a server from a pool, avoiding usage of LB or proxies.
- Scaling for write operations
- Automatic expiration like in MongoDB
- I miss the flexibility of NoSQL databases with MariaDB
- Managed service in Azure
- Good kubernetes integration
- MongoDB object storage, more and more using json columns in MariaDB now.
5.7.2 SQLite
- My SQLite is light-weight and faster
- In many cases, we run MariaDB on localhost. For some queries, SQLite is faster even without index hints.
- Nested transactions would be nice.
- SQLite is nice for small applications
- Do I really have to explain why sqlite?
- Simple and fast key:value
- Super quick to set up
- Simplicity, lightweight
- Overall app engine size
- Ease of setup
- Ease of admin
5.7.3 4D
- For desktop use, 4D is easy to use. Not so sure about MariaDB. It seems like overkill for that.
5.7.4 CockroachDB
- More stable clustering
5.7.5 DynamoDB
- DynamoDB for NoSQL
5.7.6 Other replies and insights
- Chosen product relies on other DB, also quick fulltext search.
- Mostly the capability to interact with our systems. Now we are updating our pipelines and moving to MariaDB
- We don’t always choose what DB our clients use
- It’s a customer choice
- vendor support
- It’s not about features, it’s about use cases… sqlite I use for prototyping, Postgres is within one team the preferred DB
5.7.7 Finally, quite a few 3e comments answer “No, I am not missing any particular features in MariaDB from the other databases I am using”, in various ways:
- None really
- moving from MySQL to MariaDB
- Nothing specific comes to mind.
- none
- Nothing
- Nothing very important. We support multiple databases. And some tools we use are based on Postgres.
- None, it depends on the use case
- None, others used for historic reasons
- Nothing at all (by a SQLite user)
- Nothing specific, we merely deploy different backends for different elements of our stack. MariaDB provides the most robust SQL implementation, which we utilise most heavily.
- I’m happy with MariaDB
- Nothing, I use sqlite for very little things. (SQLite)
- MariaDB satisfies our departments use case
- we’re ok
- everything is available
6. The MariaDB Tech Stack
6.1 In which languages do you develop?
We asked in 4a. What languages do you most frequently use to access MariaDB (if any)? (243/275 answers, multiple selection allowed)
We approached the usage of languages in two ways. We asked what languages the respondents most frequently use to access MariaDB, and we asked which connectors they use (from which the programming language can be partly deduced). To retain compatibility with the PostgreSQL survey, the “languages” include SQL and Shell script, whereas language-agnostic ODBC is listed amongst the connectors. Hence, there are slight differences between the two pie charts. To make the two piecharts easier to compare, we have eliminated the rows SQL, None, and Other from the language responses, whereby ODBC should become the main logical difference between the two piecharts.
The languages list is topped by PHP (69%), likely for historic reasons, followed by Python (48%), JavaScript or TypeScript (22%), and Java (17%). The C varieties are around 10% (C# and C with 9%, C++ with 8%). Of the relatively new languages, Go leads with 10% over Rust with 3%. Ruby comes in at 5%.
The “Other” category has a clear leader – Perl. We should clearly have listed Perl amongst the alternatives, as it is mentioned in nine individual cases, ranking together with Rust at 3%. Other languages mentioned include R, Lua, Zig, Kotlin, Ocaml, Erlang, and Haskell.
We approached the language question also from a connector perspective (for details, see Section 6.2):
and an ORM perspective (see section 6.3)
❝
Certain versions of MariaDB client software/libraries could not connect to MySQL 8.x due to missing authentication plugin for that MySQL version.
6.2 Which connectors / drivers do you use?
We asked in 4b. Which MariaDB connectors/drivers do you use (if any)? (235/275 answers, multiple selection allowed)
4b-a. Which MariaDB connectors/drivers do you use? (215/275 answers)
We asked about individual connectors, both on a language specific level and on a vendor specific level.
❝
Since the introduction of vector and semantic search, MariaDB got a bigger role
To get a first grip, let’s look at the vendor distribution of all the connectors being used to connect to MariaDB Server. Interestingly, less than half (41%) of all the connectors are provided by MariaDB. Somewhat frequently (14%), MySQL connectors are used to connect to MariaDB. The remainder (45%) are independent connectors, provided by the community – which to a large extent is due to the PHP connectors (MySQLi, PDO) accounting for 34% of the total.
The total number of replies (235+81+260 = 576) is to be understood as the 215 respondents on average using 2.7 connectors.
❝
MariaDB provides the most robust SQL implementation, which we utilise most heavily.
Let’s look at the connectors on a language level.
6.2.1 Of PHP users, 58% use MySQLi, and 42% use PDO – both connectors being independent of MariaDB and MySQL.
6.2.2 Of Python users, 39% use the MariaDB Python connector [^4], 18% use the MySQL Python connector, 23% use PyMySQL and 19% use the Mysqlclient.
6.2.3 Of Java users, 80% use MariaDB Connector/J and 20% use MySQL Connector/J to MariaDB Server.
6.2.4 Of ODBC users, 71% use MariaDB Connector/ODBC and 29% use the MySQL Connector/ODBC to MariaDB Server.
6.2.5 Of C users, 83% use MariaDB Connector/C and 17% use MySQL Connector/C to MariaDB Server.
6.2.6 Of C++ users, 88% use MariaDB Connector/C++ and 13% use MySQL Connector/C++ to MariaDB Server.
6.2.7 Overall, MariaDB connectors compared to MySQL connectors provide performance, stability, and access to the full MariaDB feature set. We regret not asking for the reasons to use MySQL based connectors.
6.3 Which ORMs (Object-Relational Models) do you use?
We asked in 4c: Which ORMs do you use (if any)? (111/275 answers, multiple selection allowed)
Amongst the ORMs, there are four big leaders: Laravel, SQLAlchemy, Django, and Doctrine (in this order). Laravel and Doctrine work with PHP, whereas SQLAlchemy and Django work with Python. Runners-up are Spring and Hibernate for Java.
Within the “Other” category, respondents have supplied the following answers:
- DBD::mysql (within Perl), six times
- .NET Entity Framework
- MySQLConnector.net
- mysql-net/MySqlConnector
- aiomysql
- asyncmy
- go-sql-driver/mysql
- MySQL Connector/Go
- Mysql2 (node.js)
- NHibernate
- Pomelo
- RMariaDB
- Ruby/Rails gem
- sqlx (Rust)
4c-a. Which ORMs do you use (by language)? (111/275)
Other responses:
- CakePHP
- CodeIgniter Active Record
- Custom in-house tools
- Dapper (2 responses)
- Dbi
- DBIx::Simple (not really an ORM)
- Django+Postgresql
- Eclipselink
- Entity Framework (.NET) (2 responses)
- Entity Framework (c#)
- EntityFramework Core
- Erldb
- Go SQL Driver MySQL
- Gorm (GO)
- JOOQ, Mybatis
- Laminas DB
- MediaWiki DBAL (2 responses)
- My own orm.
- NHibernate, Entity Framework (2 responses)
- orms are banned in china
- Real developers roll their own ORM
- SQLObject
- Usually whatever the app has built-in
- WordPress’s embedded “ORM”
6.4 Which applications do you use?
We asked in 4e. Which of the following applications or frameworks do you use that connect to MariaDB? (220/275 answers, multiple selection allowed)
❝
I host my sites at a WordPress hosting company and I run development versions of my WordPress sites on my MacBook Pro M4 Max using Homebrew.
Other responses:
- Airflow, Grafana, etc
- Backdrop
- Bitrix
- CiviCRM
- Custom made software
- Django (2 responses)
- Flask, Quart
- Forgejo (3 responses)
- frappe
- Gitea (2 responses)
- GLPI
- Intelligent Wolf by Wolf Software Systems
- Laravel
- Many others
- Mautic
- misc. open source apps
- our own products
- Own ERP development based on PHP
- Phorge & Kimai
- phpBB
- Red star OS, UAV Seek & Destroy Lite
- seafile
- Snipe-IT (2 responses)
- Symfony (2 responses)
- Uptime Kuma
- xenforo (2 responses)
❝
Documentation on optimizing for WordPress would be super
6.5 Which dev tools do you use?
We asked in 4d. Which of the following tools do you use most often to connect to MariaDB for querying and administration tasks? (227/275 answers, multiple selection allowed)
❝
MariaDB needs a replacement for Workbench
Over half (53%) of the respondents use the MariaDB command line client. Nearly as popular is phpMyAdmin, with 36%. Runners-up are HeidiSQL and DBeaver (both at 19%) and Adminer
Other responses:
- DbGate
- Heidisql
- MainlyAI
- MediaWiki sql maintenance script
- MySQL CLI (6 responses)
- Palantir Foundry
- phpStorm SQL extension
- sequel pro
- SqlYog (2 responses)
- We developed our own tool
- Webmin
6.6 Which DBA tools do you use?
4f. For administering your MariaDB database, what tools do you use? (120 respondents, 157 values)
With this question we wanted to give Database Administrators (DBAs) the chance to share what tools they use.
Key Insights:
- Nearly 60% use advanced tooling – automation, orchestration, or HA setups
- 30% keep it simple – CLI-only or minimal tools
- Ansible dominates automation – 11 of 18 automation responses
- Container usage is common – 10 responses mention Docker/containers
- Backup tools are diverse – mariadb-backup, mydumper, mysqldump all used
- Very few use managed services – only 2 mention RDS
- GUI tools are used mostly for development – not mentioned in production setups
- Monitoring is often bundled – rarely standalone, usually part of larger stack
❝
Would love to see some easier tool(s) to monitor (connections, query, memory, etc) and troubleshoot the database. Like a commandline tool I can run on the server itself to see those info for quick troubleshooting sessions.
In hindsight, there were benefits to asking an open-ended question, over multiple choice. We learned a lot from the complexity of the answers, which may even have turned out to be more representative than a multiple-choice set of questions. Doing the analysis became a more arduous exercise, also prone to interpretation. That Ansible, Docker, and Prometheus dominate their respective categories did become clear, as did the fact that the bare-bones MariaDB client (usually described by respondents as “MariaDB CLI”) is another obvious conclusion.
Properly aggregating and representing the open answers remains a challenge. Very long combos of tools were mentioned, with the longest one being “Ansible, mariadb-backup, Docker, Kubernetes, StadsD, Zabbix, Dynatrace, Monyog…” Individual comments sometimes stick out such as one respondent “confessing” to still being dependent on Python 2 scripts.
We made an analysis of the open responses in categories. In the interest of brevity, we have removed the individual responses and just represent the aggregate categories below.
We cleaned up, grouped and categorized them to the following 15 main categories: Backup Tools: MariaBackup (2), MyDumper (2), Backoid (1), Backup Manager (1), Bacula (1), Filesystem Backup (1), General Backup (1), MariaDB Dump (1), MyDumper + Percona (1), MySQLdump (1)
- CI/CD Tools: GitLab (1), Jenkins (1)
- Cloud / Managed Services: AWS RDS (2), OpenStack (1)
- Command Line / CLI: General CLI (10), MariaDB CLI (7), Bash Scripts (3), MySQL CLI (3), Shell Scripts (2), MariaDB CLI + Bash (1), MySQL/MariaDB CLI (1), SSH (1), Terminal (1)
- Configuration Management / Automation: Ansible (5), Salt/SaltStack (3), General Automation (2), Puppet (1), PyInfra (1), Terraform (1)
- Containerization / Orchestration: Docker (6), Helm (2), MariaDB Operator (2), General Containers (1), Helm/Bitnami (1), Kubernetes (1), OCI/Docker (1), Podman (1)
- Development / IDE Tools: IDE Plugins (1), PhpStorm (1), User Interfaces (1)
- GUI Database Management: HeidiSQL (3), Adminer (2), MySQL Workbench (2), Adminer + HeidiSQL (1), cPanel (1), DBeaver (1), DBeaver + HeidiSQL (1), DBForge + phpMyAdmin (1), DBgate (1), HeidiSQL + CLI (1), Intelligent Wolf (1), Navicat (1), phpMyAdmin (1), Sequel Ace (1), Sequel Pro (1), SQLyog (1), Webmin (1)
- High Availability / Replication: ProxySQL (2), Galera (1), General Replication (1), HAProxy (1), MaxScale (1), Orchestrator (1), Orchestrator + Custom (1)
- Monitoring & Performance: Prometheus (4), StatsD (2), Datadog (1), Dynatrace (1), General Monitoring (1), Grafana (1), MariaDB Monitor (1), Monyog (1), Netdata (1), Prometheus + Grafana (1), Shattered Silicon SSM (1), Zabbix (1)
- Percona Toolkit: PMM (3), Percona Toolkit (2), Percona Tools (2)
- Scripting / Custom Tools: Python Scripts (3), Custom Scripts (2), Custom Binaries (1), Custom CRM (1), Custom Tools (1), Custom Toolsets (1), General Scripts (1), In-house Tools (1), Perl Scripts (1), Python + Shell Scripts (1), Schema Management (1)
- Virtualization: OpenBSD VMD (1), VPS Tools (1)
- WordPress-Specific: UpdraftPlus (1), WordPress Plugins (1)
- Uncategorized: No Response (5), Manual (2), No Tools Used (2), Not in Production (1)
1. Minimalist/CLI-only approaches (29 responses – 24.2%)
- Pure CLI/Command Line (19)
- Bash/Shell Scripts Only (5)
- Other Minimal (cmd, xterm, ssh, shell scripts, “83 python 2 scripts”) (5)
- “MariaDB Monitor” [^5]
2. No tools/Minimal management (15 responses – 12.5%)
3. GUI Tools (17 responses – 14.2%)
Single GUI Tool (9):
- “HeidiSQL” (3)
- “phpMyAdmin” (3)
- “Sequel Ace”
- “sequel pro”
- “SqlYog”
- “DbGate”
GUI Combinations (5):
- “adminer and heidiSQL”
- “DBeaver HeidiSQL”
- “mysqldump, DBeaver, HeidiSQL”
- “adminer, phpMyAdmin”
- “Dbforge and Myphpadmin is used for the most of the administrative tasks.”
GUI + CLI Mix (3):
- “HeidiSQL and command line”
- “Workbench, command line”
- “CLI, PhpStorm”
4. Automation-Centric Stacks (18 responses – 15.0%)
Ansible-based (11):
- “Ansible collection community.mysql”
- “ansible, dbeaver”
- “ansible, mydumper, prometheus”
- “ansible, prometheus, mariadb-backup, proxysql, DBeaver”
- “Docker container image, Ansible, mariadb-backup”
- “mariadb-dump, openstack database, ansible”
Infrastructure as Code (4):
- “Ansible, Terraform, pyinfra”
- “Puppet, mariadb-backup, replication”
- “Saltstack” (2)
General Automation (3):
- “automation backup”
- “automation, backup, containers, monitoring, replication, schema versioning, user interfaces”
- “Saltstack for automation, otherwise manually administered”
5. Container/Orchestration Platforms (10 responses – 8.3%)
Kubernetes-based (3):
- “kubernetes, official MariaDB container, helm, helmfile”
- “Podman, MariaDB docker image, Kubernetes, bitnami galera helm chart”
- “mariadb-operator (for k8s)”
Container/Docker-focused (7):
- “Docker” (5)
- “docker, shell scripts”
- “Docker compose, dbeaver, netdata”
- “OCI official mariadb image”
6. High Availability Production Stacks (10 responses – 8.3%)
ProxySQL/MaxScale HA (4):
- “ProxySQL, MaxScale, backoid, Shattered Silicon SSM, Percona PMM, MariaBackup, Percona Toolkit”
- “ProxySQL, Galera, mariabackup, prometheus stack”
- “pt-heartbeat, haproxy, proxysql”
- “Proxysql?”
Galera Cluster (3):
- “Galera” (2)
- “Galera, Datadog”
Complex HA Setups (3):
- “backup-manager, maxscale, haproxy, mariadb operator, mariadb-dump, ansible community mysql”
- “Orchestrator”
- “orchestrator and our own tooling”
❝
Setting up a reliable multi-master setup is not easy and straightforward
7. Monitoring-Heavy/Enterprise Operations (9 responses – 7.5%)
Percona PMM/Toolkit (3):
- “Ansible, PMM, Percona Toolkit”
- “bash scripts, percona toolkit, Percona Monitoring and Management”
- “Percona Toolkit, mariadb-backup, other MariaDB command line tools”
Complex Monitoring (3):
- “Ansible, mariadb-backup, Docker, Kubernetes, StadsD, Zabbix, Dynatrace, Monyog…”
- “Orchestrator, many percona tools (heartbeat, pmm, Prometheus exporter, etc.), custom built on top of PyMySQL, bacula, …”
- “salt, docker, prometheus mysql exporter, haproxy, dbeaver”
Prometheus/Grafana (3):
- “Prometheus/Grafana”
- “Grafana, Scripts”
- “statsd”
8. Backup-Focused Operations (10 responses – 8.3%)
mariadb-backup focused (6):
- “mariadb-backup” (3)
- “mariadb-backup, phpMyAdmin”
- “Mariadb-dump, netdata”
- “shell scripts for backup (I don’t have much volumes)”
mydumper focused (2):
- “mydumper/myloader”
- “Mydumper, ansible, docker, mariadb-backup, pmm, galera”
Other backup (2):
- “mydumper for backups; various percona tools for other things.”
- “mariadb-dump” (4 total responses)
9. Managed Service Users (2 responses – 1.7%)
- “I use AWS RDS MariaDB as a managed service and monitor it with AWS CloudWatch”
- “RDS”
10. Custom/In-House Solutions (5 responses – 4.2%)
- “We developed our own tool sets”
- “in house tools, orchestrator, percona tools”
- “My own scripts”
- “Own scripting, plus heidi, mysqladmin etc”
- “Own”
11. WordPress/CMS-Specific (2 responses – 1.7%)
- “Various WordPress plugins”
- “(builtin.apt and community.mysql), UpdraftPlus (WordPress), DBeaver, VPS-level and misc. app-specific tools”
12. Specialty/Unique Configurations (5 responses – 4.2%)
CI/CD Integration (2):
- “Gitlab”
- “Jenkins”
- “docker for development and CI/CD”
Platform (3):
- “cPanel”
- “Intelligent Wolf.”
- “Navicat, OpenBSD vmd”
- “webmin” (2)
- “Shell scripts, custom-build binaries, python scripts, perl scripts, ansible for database VM deployment, and (optionally) IDE plugins for examination and testing purposes.”
Tools summary by sophistication level
If we look at a basic categorisation of DBA tools we get the following breakdown of sophistication level.
Basic (35 responses – 30%)
- CLI-only approaches
- No tools/minimal management
- Simple GUI tools
Intermediate (16 responses – 13%)
- Developer workstations with GUI tools
- Basic backup setups
- Simple container usage
Advanced (69 responses – 58%)
- Automation/IaC stacks
- Container orchestration
- High availability configurations
- Enterprise monitoring
- Custom solutions
7. MariaDB and AI
7.1 Have you used MariaDB in an AI application?
We asked in 3f. Have you used MariaDB as part of an AI application? (253/274 answers)
Two conclusions from the question about whether the respondents have used MariaDB as part of an AI application:
First, an overwhelming majority of 81% haven’t used MariaDB with an AI application
Second, a very large group of 19% have used MariaDB with an AI application. This could include usage of MariaDB Vector, only introduced as GA in December 2024, although we didn’t specifically ask about MariaDB Vector in this question.
❝
A major limitation that’s been overcome is MariaDB’s support for vector embeddings. The fact that it was in testing for so long is now a source of reassurance.
7.2 Why did you pick MariaDB for AI?
We asked in 3g: Why did you choose MariaDB over other databases for your AI application? (48/275 answers, multiple selection allowed)
The overwhelming answer is “because we already use MariaDB”. The functionality itself (“Vector capabilities”) and the ease of use are also mentioned, along with cost.
7.3 Which AI platforms and frameworks do you use with MariaDB?
We asked in 3h: Which of the following have you used as part of an AI application with MariaDB? (45/275 answers, multiple selection allowed)
OpenAI leads the pack, followed by Gemini, and Claude. Out of the frameworks, Ollama is the leading one, followed by LangChain, MCP, SpringAI and LlamaIndex. HuggingFace is also frequently used. Out of the other responses, Deepseek (from China) is mentioned, as well as the MainlyAI framework.
Other responses:
- Mistral
- custom ML applications
- deepseek (prefer chinese)
- The MariaDB AI project is still in planning, but in general, using MariaDB with AI would cover everything here (including the nice suggestions here). Though this isn’t an AI application, I have worked extensively on MariaDB with an AI coding assistant.
- MainlyAI
7.4 How is MariaDB supported in the chatbots you use?
We asked in 6c: When using AI tools (like ChatGPT, Claude, etc.) for MariaDB-related tasks, what challenges do you face with the AI responses? (215/275 answers, multiple selection allowed)
Other responses:
- I find they work fairly well for me.
- I use a few AI hints to find the right arguments to study to solve my problems. Usually the responses are useful but for server settings often incomplete or mixing versions settings
- To be more precise: AIs think that all MariaDB features are also in MySQL, and the other way around. They are unable to write correct stored procedures.
- I am pleasantly surprised how much does the AI know about MariaDB and how good code it generates!
- Lots of content safety violations, unable to do job, boss is breathing down neck, family doesn’t like me, children disowned me
- AI makes you slower (METR July 2025), and MCP is less effective than traditional APIs (Cloudflare Sep 2025)
- AI gives wrong answers
- AIs have absolutely no idea about any characteristic of MariaDB that is not part of MySQL. Except for a few MariaDB features that are incorrectly believed to be MySQL features.
8. User challenges and wishes
8.1 What challenges do you face?
We asked in 6a: What are the top challenges you face when using MariaDB? (227/275 answers, multiple selection allowed)
To get a fuller picture, we asked for more details in two other questions. Firstly in 6b: If you had problems, please share more (74/275 answers), and secondly in 8a. Anything else we should know? (59/275 answers).
We note that “No challenges” was the leading category, with 61 responses (14%).
❝
We don’t really have many serious problems, our deployment serves our needs extremely well, and any issues we encounter are mostly resolvable with moderate efforts
8.2 Performance
8.2.1 Query Optimiser issues:
- Bugs in optimizer
- Another issue that we have is that, as the volume of data is transactional tables gets large, the optimizer fails to select the correct indexes, leading to query degradation
- debugging long running queries
8.2.2 Performance regressions:
- slower performance of recent versions compared to older 10.5/10.4
- Migrating from 10.5 to 11.4 broke multiple queries
❝
MariaDB 10.11 had some very bad query plans when no good index was available.
8.2.3 InnoDB issues:
- More an innodb restriction than MariaDB, but optimizing huge tables is difficult. Also, binary logs growing huge – we have one server that has a 280Gb ibdata file
- Some of our queries had performance regressions. Even with index hints, they were slower on newer MariaDB than on earlier MariaDB
- Innodb corruption under VMware
8.2.4 Memory issues:
- Currently getting OOM-killed on Kubernetes even when I decrease my innodb buffer size to way less than the recommended 70%. Its not that easy to figure out why that is happening
- Particularly in low memory environments MariaDB has been unstable for me
- Client has problems with oom in containers, probably reason is MariaDB thinks the whole server is its ram instead of allocated ram
8.2.5 Performance observability:
- Hard to track down what causes deadlocks, lock contention and similar performance issues as MariaDB gives no information about the query/transaction that the failed query was waiting for
- Figuring out performance for WordPress
- I do wonder if the better control Postgres offers would improve performance
- Monitoring performance issues is hard
- Crash resistance
8.3 Database Administration
❝
Ready to go backup solutions never fit my use case and I have to modify them so much, I end up writing my own
8.3.1 Backups and restores: Users struggle with backup performance (mysqldump slowness), handling large databases, lack of suitable tools, encryption issues, and incomplete dump detection.
- No problems, just would be nice to have secure backups from cli for large databases – that don’t slow down the database like mysqldump
- Sometimes backup is a pain due to the size of our datasets
- Ready to go backup solutions never fit my use case and I have to modify them so much, I end up writing my own
- mysqldump didn’t mark end of dump or provide table/row summary so can’t notice easily incomplete dumps or restores
- We need to find a solution to backup huge databases and restore it on production or on developers’ computer ease
- When importing backups – the database does not auto convert the encryption
- looking for more performant and selective backup solutions than dumping the SQL
- It’s just hard to do
- Storage snapshot isn’t enough
- We don’t really have many serious problems, our deployment serves our needs extremely well, and any issues we encounter are mostly resolvable with moderate efforts
❝
Sometimes backup is a pain due to the size of our datasets
8.3.2 Observability and tooling: Difficulty monitoring and diagnosing issues, lack of visibility into failover status.
- My database failover did not survive impact, no longer highly available
- Would love to see some easier tool(s) to monitor (connections, query, memory, etc) and troubleshoot the database. Like a commandline tool I can run on the server itself to see those info for quick troubleshooting sessions.
- A tool (external to the DB), to suggest e.g. configuration changes, index additions/removals, suggest reduced privs, which can create PRs for the suggested changes.
- MariaDB needs a replacement for Workbench
8.3.3 Column Store:
- Columnstore installation is a nightmare.
8.3.4 Cloud:
- cost, lack of serverless with gradual cost
8.3.5 Configuration:
- running in low performance / low memory / iot devices
- cost, lack of serverless with gradual cost
❝
Monitoring performance issues is hard
8.4 High Availability
8.4.1 Galera Cluster: Requests for easier Galera setup, difficulties with Galera cluster stability.
- Keep up on the open side! And thanks for everything you do. A more easy setup of Galera would be nice
- Setting up a reliable multi-master setup is not easy and straightforward
- Multi-master replication is conceptually awesome and horrifyingly painful if a master falls out of sync
- As the company increases in size and the number of db transactions per second increases, Galera Cluster has started being highly unstable leading to frequent crashes
- Galera still sucks to manage
- Scaling on writes, on multiple nodes.
- Galera and schema migrations are a big pain. Under load, getting to know the root cause is very tricky. Proxysql and primary switchover is complex
- Clustering
- Sst is broken for many months
8.4.2 Replication: Setup complexity, multi-master configurations,, and network configuration issues.
- True high availability with predictable downtimes and data loss in cases of all kinds of problems is still far from being real
- Make clonedb easier
- Crashes on ddl statements, upgrade issues on servers with complex networking / subnetting, setting up replication is VERY difficult because there’s no way to say, “use this IP for outbound communications”
- adding a new replica from a blank instance requires a lot of fiddly automation; it’s 2025 and we still can’t connect to a new upstream instance from an empty database instance
- Cacti and Cacti add-ons makes HA difficult due to the nature of some of the tables having very high upsert rates
- Just tricky
- replication scale-out
8.4.3 Proxy (MaxScale, ProxySQL) management: Need for open-source proxy solutions.
- There needs to always be an open-source database proxy that works well with MariaDB. This should be supported by the Foundation. You could grab the most recent GPL version of MaxScale.
- It is hard to set up (and maintain) proxies like MaxScale or ProxySQL to gain high availability
8.5 Release management
8.5.1 Upgrading: Breaking changes between versions, loss of user permissions after upgrades, application compatibility issues, version numbering confusion, and difficulty achieving zero-downtime upgrades.
- sometimes when I upgrade the database to a newer version, all logins like “grant all to user XY to database XY” is gone, so I have to re-run all GRANT commands again
- Upgrade from different version
- MDEV-36128 “Upgrades fail on Windows”
- It’s really the worry of it going wrong
- Some applications just fail on newer versions
- minor bugs, unexpected changes in dot releases can have big effects. for example subtle locking changes with foreign keys have happened in dot releases
- Lifecycle/management issues. When the use is growing for mission-critical workload hot backups would be really useful and managing live cluster upgrades while ensuring compatibility with our stack is challenging
- Upgrading from 10.6/10.11 to 11.4 sometimes broke the installation
- Upgrading without downtime is …hard
- Backward incompatible features released in minor versions, and missing documentation
❝
There are too many versions, and too many upgrades per year. It is too confusing.
8.5.2 Version proliferation concerns: Confusion about too many versions, LTS proliferation, and upgrade frequency causing support challenges.
- As a software vendor our policy was to support all LTS versions of MariaDB. As there are more and more LTS versions we had to discard this policy. We cannot support that many versions. We cannot run our testsuits against that many versions. We cannot train our support for that many versions. Please reduce the number of concurrent LTS versions.
- There are too many versions – it is so confusing. 10x, 11x, 12x with sub versions. KEEP IT SIMPLE!!!
- There are too many versions, and too many upgrades per year. It is too confusing.
8.5.3 Windows builds, startup behavior, and platform compatibility concerns.
- The Windows builds could use some more testing. Especially LTS releases and upgrade paths should not be broken out-of-the box.
- Can it run on startup and shown in system tray with gui without admin rights, rather then as system or command prompt
8.5.4 Stability: Crashes, InnoDB corruption issues, frequent bugs, problems with MyISAM tables, and concerns about bug resolution timelines.
- As a software vendor we have ~4000 installations out in the field. We encounter many problems. One of the most problematic is, when innodb is beyond repair (ibdata1 not matching the dbs or damaged)
- They are all submitted as bugs, but main problem of MariaDB is that bugs are not processed for years!
- Bugs..so many bugs 🙂
- MariaDB >10.11.3 crashed repeatedly until we migrated some old MyISAM tables to InnoDB
- Socket problems
8.6 Functionality
Note that most requests for added functionality are listed in Chapter 5 MariaDB vs. other databases.
8.6.1 Waiting for existing AI features to roll out: Vector embeddings exist, but aren’t present in all installations.
- That MariaDB Vector is standard/rolls out on every webhosting
- A major limitation that’s been overcome is MariaDB’s support for vector embeddings. The fact that it was in testing for so long is now a source of reassurance
8.6.2 New AI feature requests: Specific technical features users would like to see added.
- Perhaps you could provide a column type for storing vectors and add support for vector multiplication.
❝
Nested transactions would be nice.
8.6.3 Other feature requests: Specific technical features users would like to see added.
- Nested Transactioooooons
- serverless !!!!
- Have more built it integrations with systems
- An open source or even commercial x-pand would be nice
- Please also don’t abandon the sphinx search plugin, we still rely on it.
8.7 Documentation and training
8.7.1 Documentation: New documentation is slower and harder to navigate than old KB, broken links, lack of examples, missing information about version differences, and gaps in SST documentation.
- Documentation was great. When you decided to modernise it, it stopped being usable on my default browser (it’s too slow) and there are now broken links
- no specific problem – just general lack of good documentation
- The new documentation is harder to navigate than the KB, I spend more time on it to find less things
- The documentation could use more examples. The current documentation is very comprehensive but examples would make it easier to understand
❝
The current documentation is very comprehensive but examples would make it easier to understand
8.7.2 Tutorials: Requests for better documentation, especially for specific use cases like WordPress optimization.
- Tutorials,
- more tutorials for dbas would be nice in general
8.7.3 WordPress: Requests for better optimisation help, especially for specific use cases like WordPress.
- Documentation on optimizing for WordPress would be super
- Optimization help for better performance
8.7.4 Talent pool:
- finding people with the skills is a big challenge
8.8 Ecosystem and third-party apps
8.8.1 Lack of ecosystem support from major platforms (Airflow, GitLab, Vitess, Aurora):
- Airflow does not support MariaDB, GitLab does not support MariaDB/MySQL… this kind of providers should be lobbied upon to make changes so that MariaDB is an option
- ecosystem support is a big one. no Vitess, no Aurora and so forth
- Suppliers compatibility with MariaDB is still a concern. Monitoring tool had various step backward vs Monyog
- Sunsetting MariaDB on Azure send the wrong message
8.8.2 Connector issues in the Python and ODBC connectors
- The official Python connector for Linux has a build process that requires installing dependencies before you can pip install
- ODBC produces weird errors
❝
Suppliers compatibility with MariaDB is still a concern.
8.9 Policy questions
8.9.1 MySQL compatibility policy statement: Desire to maintain compatibility with MySQL features and clear deprecation policies.
- MySQL has some deprecations (SQL_CALC_FOUND_ROWS for example) you don’t have. (WordPress relies on that one even though it’s a kludge.) Could you make a crisp statement of deprecation policy?
- Do not deviate from MySQL compatibility
8.9.2 Governance and organizational concerns: Concerns about company structure, leadership, and separation from open-source project.
- Please try to keep whatever is going on with the company separate from the open-source project
- clean up your image… MariaDB Foundation, MariaDB plc… all the weird news out there!
8.9.3 Bug fix urgency: Frustration about long-standing unresolved bugs.
- “Keep up the good job ! And it would really be cool if you could at last fix the nasty optimizer bug I reported 5 years ago… MDEV-22054 “Very bad performance MariaDB vs MySQL”
8.9.4 Support and pricing: Concerns about support availability, pricing clarity, and regional coverage. Note that MariaDB Foundation does not offer paid support, which we clearly need to communicate better, given that one commenter wants the pricing to “be more clear”.
- Pricing for support from MariaDB Foundation could be more clear
- MariaDB doesn’t have official support in Brazil or Latin America, and I’ve been asking and trying to get in touch: I could be that official support on several fronts, or I could take on a larger company with more infrastructure to handle this, so it doesn’t all fall under the purview of “one man.” MariaDB is lagging behind here, and that’s everyone’s biggest complaint. I’m a speaker and professor, and I’ve worked extensively with MySQL, now at the giant Oracle (where I also worked). There’s a need for someone to do the same for MariaDB here.
8.9.5 AI/ML policy concerns: Concerns about mandatory AI features.
- If you’re planning AI features, please ensure they remain strictly optional. Non-optional integration of machine learning features would force our organisation to discontinue use of MariaDB.
9. The MariaDB community
9.1 How do you connect with the MariaDB ecosystem?
We asked in 7a: How do you engage with the MariaDB community? (224/275 answers, multiple selection allowed)
9.2 How could we better serve the community?
We asked in 7b: How would you rate your ability to connect with the MariaDB community? (200/275 answers)
We asked in 7c: What would improve your experience with the MariaDB community? (60/275 answers)
9.2.1 Community is already good: Users satisfied with the current state of the community.
- The community is top as it is 🙂
- Good. Mailing list has helped me in the past
- mostly reading blogs and GH-issues. Everything is fine so far
- I don’t know, it’s perfect for me.
- its ok
9.2.2 Better documentation: Requests for improved documentation navigation, availability, and comprehensiveness.
- I mostly just go to the docs. MariaDB documentation is not that extensive or easy to navigate, but MySQL documentation is, and it usually applies to MariaDB as well, so most of the time that works for me. That said, doc improvements is still what would affect me the most.
- Better availability of non-networked documentation for use in air-gapped environments.
9.2.3 Increased visibility and promotion: Need for better visibility of the community, events, and MariaDB presence at conferences.
- Make them more visible
- Better visibility
- We had Database Frontiers, and I hoped to see more involvement from you guys. ClickHouse and TiDB (which weren’t sponsors and Vettabase doesn’t support) had much more visibility than MariaDB. I hope next year we’ll have a strong MariaDB presence.
- More ads or connections
- Promote the community
- more presence @ conferences
9.2.4 Bug tracking and JIRA improvements: Requests for better bug tracking, faster responses, and transparency.
- If there are expected bugs or difficulties, linking from knowledge base to jira would be good.
- Sometimes it is hard to follow when something gets fixed and included in an upcoming release.
- Jira responses
- No issues with community except processing bugs (see previous comment)
- Many posts do not have version information
- Reduce use of JIRA and Slack internally. Do more of the work on mailing lists and in open spaces like Zulip or Matrix, consider using a self-hosted issue tracker outside GitHub that isn’t JIRA.
- An open issue tracker.
- less jira, more github
9.2.5 Communication platform consolidation: Concerns about fragmentation across multiple platforms (Slack, Zulip, IRC, mailing lists).
- Remove Zulip or Slack: having two is making things complicated and fragmented.
- I’d like IRC to be a much more lively area
9.2.6 More engagement and activity: Desire for more active participation from Foundation/Corporation and community members.
- More engagement from the Corporation / Foundation
- More activity
- fast support
- Better quick answers.
9.2.7 Events and meetups: Requests for more local user groups, meetups, and conferences.
- I would welcome to know more about any local user groups, meetings, etc.
- partner collaboration and local community events
- more meetups
- Events in Europe
- In general, you do great. Maybe invest a bit more into organising a European yearly event with some external attendees. Currently, it’s just an internal meeting with a couple of loyal intruders.
9.2.8 Training and educational content: Need for more tutorials and training materials.
- More training and tutorials in MariaDB Youtube channel.
9.2.9 Community culture concerns: Issues with hostility, difficult interactions, and unwelcoming atmosphere.
- Stronger moderation for first-time mailing list posters
- There should be more welcome people in community currently very hostile
- I’ve only ever reported bugs. It was difficult/slow to get a response, belittled for not providing “obvious” information that wasn’t obvious, shunned when another more prominent user reported the same issue later. There is little “community”.
9.2.10 Governance and independence: Concerns about separation between company and open-source project.
- Clear distinction between the company and open-source project
- Make the Foundation more truly independent from the company.
9.2.11 Regional support: Need for better regional community support, especially in Latin America.
- MariaDB’s official support for the communities I’ve created and maintained. I was one of the first MySQL certified professionals in Brazil, which significantly influenced my career, and since then, my professional career has been filled with numerous cases across various industries.
9.2.12 No interaction: Users who don’t interact with the community or haven’t needed to.
- I really haven’t had a need to connect with the MariaDB
- I have not had a need so far.
- I don’t interact with it..
- I don’t use the community
- Don’t know. Did not have to be involved yet.
- I don’t interface with you folks, I wish you all the best, other people here do more direct work with Maria DB
- I know too little about it so far to have a good answer.
9.3 How do you contribute to MariaDB?
We asked in 7d. Have you ever contributed to MariaDB? (225/275 answers, multiple selection allowed)
Other responses:
- Percona forums
- IRC
- Tactically
- I have a Telegram, Whatsapp (300 people), Linkedin group. See all on mariadb.com.br , my own simple site (yet)
9.4 Community contributors to the Survey
We thank the following contributors to the Survey, sharing their own specific community and coming with valuable insights on the questions and structure of our survey:
- Otto Kekäläinen, Debian
- Federico Razzoli, Vettabase
- Oli Sennhauser, FromDual
- Manuel Arostegui, Wikimedia Foundation
- Kristofer Älvring, Mainly,AI
- Lorenzo Cremonese
- Roland Brühwiler
- David Ramos
9.5 Community feedback on the survey
We asked in 8a: Anything else we should know? (59/275 answers).
Most of the replies, we report in Chapter 8 Challenges and wishes. Some of it was users expressing gratitude, love for the project, and encouragement to keep up the good work.
We are grateful for the kudos and want to thank you, in return!
❝
It’s important to have a copyleft database server!
Here comes some of the kudos received:
- U r awesome, guys 🙂 I love using MariaDB for learning about databases and rdbm-systems <3 when i finish my it school, i hope, i can contribute financially to this awesome project 🙂
- good job!! solid software
- you are awesome. Thank you dad of Maria and My
- Great job! Keep up the good work.
- Good community, good backing, good product. I recommend it where I can.
- Y’all doing a great job. Love ya!
- No, just thanks
- Keep up the good work 🙂
- Keep up the good work and protect the FOSS at all costs!
- keep mariadb going
- Much love!
- Thanks a lot for this great product!
- Keep up the good work!
- Thank you for a great product 🙂
- No, there is not. Keep up the good work! 🙂
- Keep at it. Ignore short-sighted self-interested trolls telling you you need to evolve, especially if they work for you or manage you. They don’t know of which they speak.
- I want to thank you for all your hard work making a great product that originates from Europe, I left MySQL when it was sold to Oracle and I have never looked back, the community driven development and Open source license suits me perfect. Im considering starting donating as I don’t want this freedom going away.
- MariaDB is a product and brand I trust, admire and like. Also, while I forget his name and position, the man who was, or is still, in charge of the vector-embedding development put out some great YouTube videos which I enjoyed.
- Keep making MariaDB better!
- I like mariadb. used it from ~2013
- It’s important to have a copyleft database server!
- overall happy mariadb’s trajectory is positive these days
- I’m a happy MariaDB user and I feel MariaDB deserves to be more widely recognized.
- Keep on making such a wonderful product ! Thanks !
- you are doing a great job
10. Footnotes
[^1]: Fixed with MySQL Connector/NET 8.0.28 released 2022-01-18
[^2]: Note that async functionality for the Python connector is currently being worked on within MariaDB plc.
[^3]: Fixed in MariaDB 11.8 (MDEV-25829)
[^4]: the Python connector for MariaDB is undergoing a strong revamp, one aspect of which is async coverage.
[^5]: Is the name of the “MariaDB CLI” that almost no-one uses.