MySQL vs Alternative DBMS

Started by vyzen, Sep 18, 2023, 12:20 AM

Previous topic - Next topic

vyzenTopic starter


Let me give you some background. I was assigned the task of developing a program for calculating indicators and printing documents as my graduation project. I have to admit that I wasn't very skilled in programming, but I found it interesting to learn everything (by the way, I chose the c# language).

Based on a friend's recommendation, I decided to use MySQL as the DBMS since it is free and all that...
The program was almost completed when the person who will evaluate our diplomas wanted to see what we were doing. When the teacher found out I was using MySQL, she immediately pointed out that the DBMS was not very old (in fact, quite old) and so on... I wasn't prepared for such discussions, and I couldn't provide a coherent response to justify my choice.

Now I'm determined to provide a justification for my selection of a free DBMS, so I started comparing it with PostgreSQL... But for some reason, all the comparisons initially highlight numerous advantages of MySQL, only to later mention that PostgreSQL is a very good project and better to use.

So here's the question, if MySQL is truly a poor choice at the moment, what alternative should I consider for development that would allow me to easily justify my decision (I'm even willing to consider paid DBMS)? If MySQL does have its positive features, please enlighten me.

I would greatly appreciate any useful information!

PS: If it is indeed better to switch, please suggest options that would make it as easy as possible to transition to a new DBMS. And, of course, to justify all of this in the graduation project.


When selecting a DBMS for your graduation project, there are several factors to consider. MySQL and PostgreSQL are both popular choices, but they have different strengths and weaknesses.

MySQL is known for its simplicity, ease of use, and wide adoption. It has been around for a long time and has a large community of developers and users who can provide support and resources. MySQL is especially suited for simple applications that require fast read and write performance. It is also well-documented and has good integration with other technologies, such as PHP.

On the other hand, PostgreSQL is often praised for its robustness, extensibility, and adherence to SQL standards. It offers advanced features like support for complex data types, full-text search, and transactions. PostgreSQL is ideal for applications that require strict data integrity, complex queries, and advanced data manipulation capabilities.

While MySQL may have certain advantages, it's important to note that the choice between MySQL and PostgreSQL ultimately depends on the specific requirements of your project. If your teacher believes that MySQL is outdated, you should consider addressing her concerns by discussing the following points:

1. Popularity and Community Support: Explain that MySQL has been widely used in industry for many years and has an active community providing ongoing support and updates.

2. Performance: Discuss how MySQL's optimized architecture allows for efficient data retrieval and storage in simple applications.

3. Integration: Highlight how MySQL seamlessly integrates with other technologies commonly used in web development, such as PHP.

If you still wish to explore alternatives, you could consider other popular relational database management systems like Microsoft SQL Server or Oracle Database. These options offer more advanced features and have extensive documentation and community support.

To transition to a new DBMS, you must evaluate the impact on your existing code and data. It's essential to understand the SQL dialect, data migration tools, and any necessary code modifications. Consider the availability of libraries or frameworks that support your chosen DBMS. Documentation and online resources will be crucial during the transition process.

more points to consider when comparing MySQL and PostgreSQL:

1. Scalability: PostgreSQL is often regarded as more scalable than MySQL, particularly for large-scale and complex applications. It offers advanced features like table partitioning and replication, which can enhance performance and handle increased data loads.

2. Data Integrity and Consistency: PostgreSQL has strict adherence to the SQL standard and provides more robust ACID (Atomicity, Consistency, Isolation, Durability) compliance. This ensures better data integrity and consistency, making it suitable for applications that require transactional support.

3. Advanced Features: PostgreSQL offers a wide range of additional features, such as support for stored procedures, triggers, and user-defined functions. These features enable developers to implement complex business logic directly in the database, reducing the need for additional application code.

4. Community and Ecosystem: While both MySQL and PostgreSQL have active communities, PostgreSQL often attracts developers who prioritize standards compliance and advanced features. PostgreSQL's community provides strong support, regular updates, and a wealth of plugins and extensions.

If you decide to switch to a different DBMS, here are a few options to consider:

1. Microsoft SQL Server: It is a widely used commercial DBMS with advanced features, excellent integration with the .NET framework, and robust security features.

2. Oracle Database: Another popular commercial option known for its scalability, reliability, and extensive feature set. It supports complex data structures and provides comprehensive tools for managing enterprise-level databases.

3. SQLite: If your project requires a lightweight and embedded database, SQLite is an excellent choice. It is serverless, self-contained, and doesn't require a separate DBMS installation.

few more points to consider when comparing MySQL and PostgreSQL:

1. Security: PostgreSQL offers advanced security features like row-level security, column-level security, and secure communication protocols. It provides more fine-grained control over access privileges, making it suitable for applications that require stringent security measures.

2. Data Types and Extensibility: PostgreSQL supports a broader range of data types compared to MySQL. It includes built-in support for array types, JSON, UUIDs, full-text search, and geometric types. Additionally, PostgreSQL allows developers to create custom data types, providing flexibility and extensibility.

3. Replication and High Availability: PostgreSQL provides robust replication capabilities, including both asynchronous and synchronous replication options. This makes it easier to create high availability setups and maintain data redundancy for critical applications.

4. Transactions and Concurrency Control: PostgreSQL offers advanced transaction management and concurrency control mechanisms, allowing multiple users to access the database simultaneously without conflicts. It provides support for Serializable isolation level, which ensures the highest level of transaction isolation.

When considering alternatives, you can also explore cloud-based databases like Amazon Aurora, Google Cloud Spanner, or Microsoft Azure SQL Database. These options offer scalability, automatic backups, high availability, and managed services, relieving you of some administrative tasks.

To justify a switch in your graduation project, highlight the specific advantages of the alternative DBMS that align with your project's needs. Discuss how the new DBMS addresses any limitations or concerns raised by the teacher, such as data integrity, security, or advanced features. Emphasize the potential benefits in terms of performance, scalability, and maintainability.

You can also present a plan outlining the transition process, including data migration strategies, any necessary code modifications, and how you would ensure a seamless transition without compromising the functionality of your application.


The reason the teacher tells you this is because there exists a Microsoft technology stack. For many people, C# should only be paired with MSSQL and not with other databases. This makes sense particularly for large projects, where the language and database developed by the same company are closely integrated. However, this does not mean that MSSQL is the only or most reasonable choice.

Personally, I write in C# and use MySQL instead of MSSQL. Here's why:

1. MySQL runs on any operating system, so it doesn't require a paid Windows license.
2. The full-featured version of MySQL is free, unlike MSSQL.
3. MySQL is lightweight and doesn't require powerful hardware, meaning it performs faster on similar hardware.
4. MySQL hosting is widely available.
5. You have a wide selection of engines for each table and use case.
6. MySQL supports full-text search (in MyISAM).
7. There are forked versions of MySQL that ensure normal development even if Oracle makes unfavorable decisions. Additionally, the open-source nature of MySQL provides benefits.

Moreover, modern MySQL supports many features found in modern databases, such as views, triggers, functions, stored procedures, events, and subqueries.


When it comes to comparing MySQL and PostgreSQL, there is little to no distinction in terms of basic everyday tasks. However, for professional purposes, my personal opinion is that PostgreSQL would be the more valuable choice.

It is crucial for teachers to update their knowledge on specific DBMSes or contemplate their retirement, should they claim the outdatedness of any particular one.