Please share with the community what you think needs improvement with MySQL.
What are its weaknesses? What would you like to see changed in a future version?
Improvements are required in character set support, scalability, and big data sets. There is a lack of advanced features such as SQLServer, PostgreSQL, etc. I would like to see minimum reporting services and analytics features in the next release. MySQL doesn't have many tools to monitor performance and fix issues easily. The graphical user interface needs to be improved. It would be nice to have drag and drop on tables to create relationships between them. Other relation databases have these basic features. It helps during development to have these on hand. This product is not suitable for enterprise applications.
MySQL could be improved by adding more automation. There are no additional features I would like to see that I can think of at the moment.
Integration is a key feature in need of improvement, as we have spent hours building this just to ensure that a set of data is exposed to a different client, a different world in need of that data. Since we are dealing with open source, which we are now employing in memory databases as well, it would be nice if they were to start thinking along those lines.
Scalability could be improved.
Security is a concern. MySQL could have better security features.
Since we upgraded from 8.0.12 to 8.0.22, it has had some slowness-related issues. Some of the queries that were fast previously are quite slow now. I did some research, and I found many people complaining about it.
The solution could have better integration and security features.
The solution could be more secure.
I have doubts about its overall stability. It's something that they should look at. As an open-source product, there isn't really any technical support available if you get into trouble or have issues. There isn't much scalability potential in the product.
The solution could improve by having better performance and security.
The manuals or documentation could be better.
I'd like to see some additional JSON query support in the solution.
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.
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.
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.
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.
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.
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.
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.
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.
The technical support should be more knowledgeable and available worldwide.
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.
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.
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.
It should have some code analytical functions. It can also have a monitoring tool.
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.
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 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.
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 capabilities
MySQL doesn't have the auto-clustering and database clustering features that other competitors provide. They can include these features.
I would like to have features that allow us to jump between the cloud and our on-premises system.
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.
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.
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.
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.
We would like to see more security.
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.
We haven't noticed and features that are lacking. From a user perspective, the initial setup could be simplified a bit.
The replication needs improvement. It's becoming a native cloud product like Oracle DB or Cockroach DB.
* I think a better front end would be a better solution (web application front end, similar to what Red Hat is doing to Fedora). * Another nice solution for MySQL clustering would be the use of Webmin. * Also, security measures could always be improved, and the clustering process could be enhanced as well. I recommend using UFW, iptables, and firewalld.
The only service which could be improved is its usability. The entire user experience needs to be revamped to meet the 2018 design standards.
When working with a cluster wide, I have to use the MySQL cluster version.
Which is better and why?
Let the community know what you think. Share your opinions now!