7 ms·
There are some very useful features there, but I can't help but think that MySQL should have had them a long time ago. Is there something MariaDB doesn't have?
by dancek 8y ago
There are some very useful features there, but I can't help but think that MySQL should have had them a long time ago.
Is there something MariaDB doesn't have? I'm genuinely curious as I've only really followed PostgreSQL development.
- go_prodev 8y agoNo, at this point Maria has surpassed MySQL, however over time we'll likely see the two diverge as MySQL creates new storage types and heads in a different strategic direction.
- meritt 8y agoThe big features that MySQL has been lacking, MariaDB has had since at least 10.2 (Apr 2016) or earlier. Specifically I'm talking about Windowing functions, CTEs, JSON support, GIS support, Metadata in transactions (DDL statements). At this point MySQL is playing catch-up to MariaDB.
- morgo 8y agoFormer MySQL Product Manager here (no longer affiliated). To cover your specifics: MySQL was first in offering JSON with 5.7. It is still well ahead, for example, there is no JSON_TABLE, aggregate functions, native type or partial update in MariaDB. Some examples of the value here: https://mysqlserverteam.com/mysql-8-0-from-sql-tables-to-json-documents-and-back-again/ https://mysqlserverteam.com/mysql-8-0-from-sql-tables-to-jso... Both have always had GIS support, but have taken it in a different direction. With MySQL, the GIS is now based on Boost.Geometry and has Geography support. w.r.t. metadata in transactions - I am not sure which feature you refer to here. The native innodb-based dictionary is a MySQL only feature. For Window functions and CTEs, they were added at a similar time, but MySQL is on a ~3yr release cycle. MariaDB is on a ~1yr.
- meritt 8y ago> I am not sure which feature you refer to here The same complaint that every single person brings up about MySQL when being compared to Postgres, including in this thread: DDL changes made during transactions cannot be rolled back.
- morgo 8y agoMariaDB does not have that feature: https://mariadb.atlassian.net/browse/MDEV-4259 https://mariadb.atlassian.net/browse/MDEV-4259
- willvarfar 8y agoMariadb has JSON it just doesn't call it that - it's terminology is dynamic columns. Source: have code that works on both.
- morgo 8y agoIt has both (now). It's a stretch to say Dynamic columns are on the same level. For example, could you index them with virtual generated columns? The syntax is also not as transparent to applications as the ->> JSON operator.
- willvarfar 8y agoOracle owns the JavaScript trademark and has started enforcing it. Kinda wise in hindsight that Mariadb didn't call it json? I think Mariadb was there first. I think the format is very similar at the bit level, but the MySQL has nicer API with automatic returning it as text to apps rather than exposing the bits. I dislike json_extract and wish >> worked but it doesn't seem to on my percona server :( Anyhow, you'll look back when you've got more distance from Oracle and realize that you don't need to try and convince yourself that MySQL was better quite so hard ;)
- morgo 8y agoJSON is part of the SQL 2016 standard and exists in other databases as well. I don't see how the trademark is relevant here. I wish we could be more civil and not resort to petty insults. Is there anything I wrote you can dispute with a source?
- johannes1234321 8y agoThere s a difference: MySQL has specific a datatype for JSON aside from only having JSON-related functions working n strings, which has a few benefits: * The JSON datatype guarantees the content is valid JSON * access to fields can be faster even without dynamic/virtual columns * since 8.0 there are special optimizations for doing partial updates, which means that not the full JSON data has to be rewritten on small changes https://mysqlserverteam.com/partial-update-of-json-values/ https://mysqlserverteam.com/partial-update-of-json-values/
- cdevnull 8y agoThe main reason I don't use mariaDb is the non support of nullable spatial index. https://mariadb.com/kb/en/library/spatial-index/ https://mariadb.com/kb/en/library/spatial-index/
- ayan 8y agoI feel the same way. I've been using and tracking both since the mid to late 90s. I've always wondering why, in a world where PostgreSQL exists, would anyone use MySQL. New releases seems to only slightly close the gap between it and better RDBMSs while retaining quite a few kludges and ambiguities. In the meantime PostgreSQL gets better at the same pace.
- gaius 8y agoI've always wondering why, in a world where PostgreSQL exists, would anyone use MySQL I am a solid Postgres guy, but MySQL still has a better multi-master replication story. Confident that Postgres will eventually surpass it, possibly even in a later iteration of 10. Now in a world where Postgres exists why would anyone use MongoDB is a valid question...
- ptman 8y agoPostgres 11? Postgres 10 will only get bug fixes. The version numbering was changed with 10
- greenhouse_gas 8y ago1. LAMP - If you're working with shared hosting, there isn't much of a choice. 2. WordPress. 3. If you need something simple and basic, MySQL is much easier to get up and running.
- nik736 8y agoI agree with 1 and 2 but I don't understand 3. Can you please elaborate?
- lstamour 8y agoBiggest difference for me is that MySQL always pushed a simpler user structure while most *nix Postgres packages prefer having corresponding native OS users by default (PAM vs password auth). Also, it always seemed easier to migrate/upgrade MySQL data folders compared to Postgres ones. The specifics aren’t coming to mind right now, though. Finally I know way too many folks who prefer phpMyAdmin, especially when provided from their cheap shared hosting provider. Don’t get me wrong, I prefer Postgres generally too, but I can definitely see wins to MySQL on ease-of-use. Especially the less standard but more forgiving SQL syntax and simple DESCRIBE commands. Yes the quirks add up for MySQL but Postgres has its share of quirks too.
- petre 8y ago> Is there something MariaDB doesn't have? * Proper native JSON support * Spatial support lags behind MySQL However we are still using it in production and MySQL 8 is a no go given that it removed MyISAM support. We still use MyISAM due to fast inserts and easy backup (just copy the files). We use MariaDB for storing IoT time series data.
- sjwright 8y agoHave you explored the TokuDB storage engine? Or Aria?
- petre 8y agoYes. Aria is one of the reasons we are using MariaDB in fact. It offers a great migration path from MyISAM. We migrated from MySQL 4.6, that's why our tables are in fact MyISAM. We currently have a test server running using Aria tables. I have also thought about using TokuDB but SuSE (13.2) didn't ship a module for it then. I have to check again in 42.3. The only real issues with MariaDB is lack of proper JSON and spatial support which would be of great use to us. I'm talking about a real JSON data type with validation and means to query and maybe even replace JSON, not a mere alias for the LONGTEXT data type. We intend to switch to Postgres on the long run. It has everything we want, moreso with TimescaleDB extensions which could proove very useful for storing time series data. We are currently using it for the spatial database.