MySQL Room for Improvement
CTO at Translucent Computing Inc
As for what can be improved, right now we don't use the MySQL cluster. There is a MySQL cluster that you can run in a standalone mode, like a single database or you can do it in a cluster master-slave implementation. The cluster is not the best when it comes to MySQL. That's why we switched to MariaDB. For that simple reason that the cluster there is better. It's more manageable and it's easier to work with.
We decide what to use depending on the needs. For example, if we need to mount something in a cluster mode, we use MariaDB, which again, is a Dockerized solution with a Helm chart as well, and it's very easy for us to deploy and manage, and also to scale when you just increase the number of slave versions. So MySQL doesn't have that great support when it comes to clusters. You can definitely use MySQL for that too, both support clustering, but the MariaDB is better.
Additional features that I would like to see included in the next release of this solution include better support for backups. Because if you go with the MySQL Percona version, it gives you the tools to back it up securely. The vanilla version of MySQL doesn't have that. It actually does have it, but it is just really poorly executed. I would improve the backup system as well as the encryption. To make it smoother right now takes too much work. It should be a little bit smoother to backup the encrypted data the way you want it and have the ability to push it anywhere you want. That is not part of it right now.
Now it is a database, so you don't know what you're going to do with it. It's difficult. You're just going to come up with solutions. But I think you can generalize here and come up with really simple solutions, which we have already in MySQL. That's probably the one thing that I would try and push right now for people to switch. But people are still not biting, because if you go with the managed version, then all the backups are taken care of for you by Amazon or Google or Microsoft. Then you really don't care. But for us, since we're doing it locally, self-hosted, we would like to have better tools for locking up the data.
Right now, one aspect that is also linked to backups is running things in a crosscheck with semi-managed solutions. This requires a bit of a context. Since we're running things within the clustered communities, we're kind of pushing the Cloud into the cluster. We also want to push some of the tools for the database into a cluster, as well. So these are what we call Kubernetes operators. And there's MySQL operators that were first developed by the community. Those kind give you the ability to backup data within the cluster. So now you have a fully managed solution running from your cluster. These are called MySQL Kubernetes operators.
We are looking into those right now to upgrade our solution, which would mean that we can just execute our backup natively within Kubernetes, not via special scripts. This would make it much easier to actually deal with any kind of MySQL issues within the cluster, because it would be cluster-native. That's what the operators are for.
I think Oracle just created a really good one. It surprised me that they have this. It's not because of Oracle, but they got pushed by the community and actually created the MySQL Operator for Kubernetes, and that's what we're moving towards.
This is going to give you an ability to have a cloud-managed solution within the cluster. And then you can ask the MySQL Operator for the database. They'll partition the database and give it to you. So it will change the nature from you deploying it to you just asking the cluster to give you a database. It's a fully managed solution right from the cluster.
So that's what we're heavily looking into right now. We'll be switching to using Kubernetes MySQL Operators. It's a high-availability cluster running within the Kubernetes cluster.
Right now we're pretty good with that. It's working fine. We're trying to find some time to actually release that globally everywhere. That's where I am right now.
But in terms of technology, if you give up Oracle, you just go to a MySQL operator. That's the one we're using, what we're actually looking at - to create, operate and scale mySQL and sell it within the cluster. This idea of having a cognitive MySQL becomes much easier to manage within the cluster, as well. So you don't have to go with the cloud solution with AWS or Google cloud or Amazon MySQL or the Microsoft version.
The Oracle SuperCluster is the Oracle MySQL operator. That's what we we are looking into a lot right now. Mainly because it does backups on demand - it's so easy to backup. You can just tell Kubernetes to backup and you don't have to run special scripts or special extra software or codes to back it up. You can make the backup as you would do anything else. Send a backup or some other data source or insert an Elasticsearch into it here. Just say "Kubernetes, back it up" and you know Oracle has this adapters within the cluster to back it up for you taking increments or different companies. So that makes it really nice and easy to use and to deploy.
With that kind of solution you can ask to class or petition the database how you want. So again, it changed the nature of the kind of push-to-pull second nature system. Are you pushing your containers to a cluster? You just say cluster, "give me a database" and the class gives you the base partition database, creates a database in a secure manner, gives the connection to the database, and you're done. Then you can back it up on a schedule on to any backup switches. It's much easier. So once this goes, it is going to be widely adopted, which it should be. But I think people might not have the tech skills right now. But once it's adaptive, maybe in a few more months, it's going to be the number one solution for everybody.
In terms of what I'd like to see in the next release, one thing that's always missing is dash boarding. There's no real BI tool for MySQL, like there is in Yellowfin and all the different tools that you get. They all have MySQL connectors, but there's no specific BI tool for MySQL. Open source projects have sprung up, but they're more general purpose, like Postgress, a MySQL kind of database, a relational database. I don't see any really nice tool like Cabana for elastic searches that I can tell clients to use because it would be too technical for them. They would have to have more technical engagement with writing the course, drag and drop, and creating a graph like in Power BI where you just connect with DIA.
So I'd like to see the grab and drag and drop tables, nice beautiful graphics, and pie charts. You don't necessarily have that with MySQL like you have other solutions, which are really cost prohibitive for some clients. It'd be nice to have an open source solution for that. Decent solutions. I mean decent that I can take to clients. It's so technical. They want to drag and drop.
In terms of what could be improved, some of the features that Oracle has, MySQL also has. Like if a customer is looking for a high availability solution, a security solution, a monetary solution, they can have all that in an expensive product like Oracle but they can also have it when they're using MySQL.
Every product has their own pros and cons, and also has their own market. So if the customer is already using or has already used Oracle for a long time they will know the look and feel and the character of this database that can fit into their business.
They will not choose MySQL over Oracle if they already know about Oracle. But if they start to build a new application before they are creating a secondary application then they may not be familiar with Oracle and they will try MySQL. Maybe they will like it because they will see that this database also has complete features. If they try Oracle they find the same features but different pricing. In certain things, MySQL cannot have the same benefits as Oracle but for some customers who are already using Oracle, you're not going to move to another product even if it's more expensive.
And MySQL is a cheaper product.
That's why I say that MySQL has many of the same features as Oracle. Both of them have high security.
The customer that comes from a small or medium business will prefer to choose MySQL rather than the Oracle database because they already know that this product is best for their business because it is not expensive compared to Oracle.
Oracle does have different versions with different prices. The cheaper is called the Standard Edition. And the most expensive is the Enterprise Edition.
MySQL is comparable to the Oracle Standard Edition if we compare peer to peer. But the difference is that the Standard Edition doesn't have features like the Enterprise edition. But the high security and the high probability are not in the Standard Edition. But MySQL will have it. It will have all those kinds of features with a lower price. Because the Standard Edition is more expensive than MySQL.
Every kind of enterprise company has a core application on which their business depends. Mostly they will just choose the Oracle database. Why? Because of Oracle database's capability to handle the big workload for enterprise businesses. I think that will become their priority and MySQL will not be an option for them.
But someday I would like to see the enterprise companies changing their mindset. If you are talking about core applications related to the high workload in the future, they can choose MySQL as well. Maybe not now, because right now they still see MySQL as for small/medium business and not for the enterprise business. But I hope in the future MySQL can be seen as on the same level for their database.
That will mean that all enterprise companies can have two options when they are choosing a database solution for their core application; either Oracle database or MySQL.
The developers of MySQL, which are Oracle MySQL, Percona, and MariaDB, seem to not be focusing much on object-oriented replication. Basically, replication is based on a text level of replication. There is a text level replication in Oracle, that is so similar it can be implemented in MySQL, however, it needs to pull a lot of resources. They have altered their approach for replication. Still, more focus on object-oriented replication would be good.
They should come up with a better solution than the NDB cluster for better scaling. If they could come up with a better solution for write scaling, apart from the NDB cluster, which is supported by all open source communities, that would be great. Although the NDB cluster, I believe, is an open-source tool, it's not widely supported as a solution.
My understanding is there are a lot of features in MySQL 8.0, the latest release, which I'm not too familiar with yet.
Computer & Information Systems Manager at a real estate/law firm with 51-200 employees
The GUI interface probably can be improved. Let us say I want to see the relationships in the database. In the query analyzer, I would like to go and drop the tables and create relationships between the tables. I haven't found a feature like that in MySQL. It was a shortcoming even in SQL Server.
MySQL can have more performance monitoring tools. I know Google has these tools, but within MySQL, there are not that many tools to monitor things like performance and database locking. They might be in there, and I might not be familiar enough to know where they are. I am a pretty new user of MySQL.View full review »
Specialist Geosciences Data Consultant at a energy/utilities company with 10,001+ employees
I would like to see an autocorrect option, where if you're typing a query and you enter a comma instead of space, or something similar, the ability for it to be able to understand based on your previous scripts would be an advantage. For example, if you were to put a comma between your AND statements then it's not going to work. Maybe a smarter application where, as you're writing queries, similar to the way that grammar and spelling are checked when you type a text message on an iPhone, it could be autocorrected.
I would like to have the ability to cancel a query in SQL Developer. Specifically, I would like to be able to cancel the query should I accidentally write one that's going to loop, or have a JOIN wrong, where you get millions of records joining with millions of records over and over again. The availability to hit cancel so that it doesn't keep running would be helpful because, when such a thing happens, then you have to shut down the whole application and you lose any queries that you might've typed before.View full review »
I would like to see a feature added to be able to handle high availability, which would allow us to scale the database or the system on many platforms.
Scalability has to be improved, as you have only one instance of the application, or two, or more instances at max that are connected on one instance of MySQL.
In the next release, I would like to see the scalability features improved to allow you to configure it and reduce the complexity with the configuration, making it easier for the end-user to scale. Make it as simple as it can be.
Add the possibility to define custom data types
Add OLAP and backup capabilitiesView full review »
MySQL tutorials and guides could be improved. Often they are too complex for someone with no database experience to understand.
It is not an easy database to learn for the novice, and very often users need to take a course, employ the use of an online tutor, or IT professional to assist. Also, it is known that it is often difficult to locate guides for specific functions for developers.
It might be good to have some way of creating web services easier, rather than having to write a User Defined Function (UDF) in PHP.View full review »
COO at a tech vendor with 1-10 employees
The analytics features are in need of improvement. They aren't as far along as the capabilities that you have in terms of analytics for SQL Server and Oracle.View full review »
Database Administrator at a comms service provider with 1,001-5,000 employees
The backup methods need improvement. MySQL needs to improve its backup methods so that you can actually do a backup without affecting products. Currently, when you're doing your backup, it locks the database. When someone tries to access it during a backup, it fails to read or to update. They can improve on the backup and all the backup features in general.View full review »
CCO at a construction company with 11-50 employees
The replication needs improvement. It's becoming a native cloud product like Oracle DB or Cockroach DB.View full review »
The two most common and popular MySQL database engines are MyISAM and InnoDB. Database engines provide the underlying functionality for MySQL to work with and process data. MyISAM is the default engine for MySQL for versions earlier than 5.5.5 and functions well in most scenarios.
However, depending on your needs, there are situations where another database engine, such as InnoDB, may be the better choice. For example, InnoDB supports transactions, whereas MyISAM does not. InnoDB also provides support for foreign keys, whereas MyISAM does not.
When it comes to supporting big data, there is space to improve upon the database engines that are supported by MySQL. An example of this is the Vertica DB engine (https://en.wikipedia.org/wiki/...), and offering support for it would be valuable.View full review »
We haven't noticed and features that are lacking.
From a user perspective, the initial setup could be simplified a bit.View full review »
Business Intelligence Manager at a translation and localization position with 501-1,000 employees
What it would compare it to, from my point of view would be, Microsoft SQL Studio. I find the Microsoft solution a bit better. But mostly in terms of the UI layout, I would say. I just find it a little bit more efficient. But to be honest, I can work equally as well with both.View full review »
We faced some details in clustering, although this may have been because we did not have enough knowledge about MySQL clustering. In general, an easier implementation for clustering would be an improvement.
The product is a little bit complex and it is difficult to find sufficient documentation.View full review »
Deputy Director General at a computer software company with 1,001-5,000 employees
We require more ease of use, scalability, and high availability. These are some of the critical features that we use and look for in a product. It should be easier to manage clusters. Scalability is very important for us because our projects and concurrency requirements are quite big. We also require high availability of the server, application, and other things.
It should also have more performance-based features or enhancements from the performance point of view. When we divide a database, it should be able to handle the queries very fast.View full review »
Information Technology Infrastructure Manager at a comms service provider with 201-500 employees
I would like to have features that allow us to jump between the cloud and our on-premises system.View full review »
Founder at a non-profit with 1-10 employees
MySQL is good but it should be able to handle the large transaction levels that Oracle can. It should be able to manage large amounts of data. We have experienced some issues when we are handling a large amount of data in MySQL.
The memory consumption it's using is very high at times, and the default parameter settings are not quite good automatically. We need to tweak the configuration as per the requirements. This is an area that can be improved by giving some guidelines and direction.
On the database side, it should be really lightweight, and the data structure should be like MongoDB.
It should put less load on to the memory and it should be able to handle maximum data.View full review »
Typically security will be on a security layer. I haven't really looked into the security of it, but it should be good.
It could be more secure.View full review »
CEO at a computer software company with 11-50 employees
We would like to see more security.View full review »
Its scalability can be better. It is probably not as scalable as Oracle.
I had some issues with connectors. I used it from a C++ program, and it required some work to make it run, but finally, it worked.View full review »
It can have better monitoring. In addition, the enterprise manager should be able to cater to more than one virtual machine. Currently, you need one license per server. It seems a bit too much to get one license for one enterprise manager. I hope the enterprise manager for MySQL can accommodate more virtual machines for MySQL.View full review »
SVP Technology and Head of India at a financial services firm with 201-500 employees
The technical support should be more knowledgeable and available worldwide.View full review »
I am looking for the Temporal SQL feature, which basically means that there is complete history for each table. This feature is currently available in MariaDB.
PostgreSQL has something called a foreign-data wrapper, which is another way to access external data from inside. MySQL could have a similar feature.
MySQL needs to be more accessible and user-friendly. The person working with it needs to be trained in MySQL to have the necessary skills to control the database and analyze data. It should provide better customer experiences.View full review »
Senior Database Administrator Engineer at a comms service provider with 10,001+ employees
Errors that come from MySQL need to be more clear. In Oracle, for example, you have the aura and you have numbers, you can easily find the error. MySQL should follow the same as in Oracle.
Stability needs improvement and the backup needs to be enhanced.View full review »
IT at a construction company with 201-500 employees
The manuals or documentation could be better.View full review »
Senior Director IP led Services (PES) at a computer software company with 1,001-5,000 employees
I'd like to see some additional JSON query support in the solution.
Full Stack Developer at a tech services company with 10,001+ employees
Its performance should be better. When we use big data, it is slow in performance. We should be able to use mirroring for improved performance.View full review »
Data Analyst at a tech company with 51-200 employees
We want high availability and replication features, which are currently missing in this solution. It would be great if they can provide an in-built replication feature, similar to Oracle RAC, in MySQL.View full review »
Senior Data Analyst at Charutarhealth Org
It should have some code analytical functions. It can also have a monitoring tool.View full review »
EUC Techical Operation at a tech services company with 10,001+ employees
MySQL doesn't have the auto-clustering and database clustering features that other competitors provide. They can include these features.View full review »
Deputy Manager at a university with 1,001-5,000 employees
The documentation is pretty weak and should be improved.
The GUI for PHP MySQL Admin can be improved because it is not very flexible and sometimes difficult to use.View full review »
Information Systems Computer System Controller at a insurance company with 11-50 employees
There are some issues with compatibility with Java environments that need to be improved. When Oracle bought this solution there were some driver changes that caused some issues with operations.View full review »
Information Technology Administrator at a tech services company with 51-200 employees
There should be more tools to manage the on-premises version and more automation features.View full review »