Veritabanı seçiminiz olarak MySQL kullanmanın zorlukları mı var? [kapalı]


20

Çevrimiçi olarak MySQL'in kötü bir veritabanı olduğunu birçok kez okudum. Bunu okuduğum yerler Reddit'teki bazı konuları içeriyor, ancak neden kötü bir ürün olduğunu araştırmıyorlar.

Bu iddiada herhangi bir gerçek var mı? Bunu hiç bu kadar basit bir CRUD senaryosunun ötesinde kullanmadım ve bu ikinci senem boyunca bir üniversite projesi içindi.

Veritabanınız olarak MySQL'i seçerken , varsa , hangi tuzaklar var?


7
Ana tuzak, elbette, Postgres zealots'un seçiminiz konusunda güvensiz kalmaya çalışacağıdır.
Dan Ray

Wikimedia bunu kullanıyor, bu yüzden çok kötü olmamalı.
Arlen Beiler

Yanıtlar:


32

Tuzakların iki farklı türde, senin lezzet olarak MySQL kullanılarak gelenler vardır RDBMS ve veritabanlarının diğer türleri yerine bir RDBMS kullanarak olanlar.

Alternatif RDBMS'ler yerine MySQL kullanımı:

  • MySQL'in diğer RDBMS'lerle çeşitli karşılaştırmaları için bu wikipedia karşılaştırma tablosuna bakın .
  • ASP.NET web uygulaması oluşturuyorsanız büyük olasılıkla Microsoft SQL Server'ı tercih edeceksiniz, sistem birlikte çalışmak üzere tasarlandığından, hem geliştiriciler hem de BT yöneticileri için inanıyorum
  • Kümeleme (Oracle RAC) veya gelişmiş DB yordamlarını içeren daha gelişmiş bir DB kurulumuna ihtiyacınız varsa Oracle'ı tercih edebilirsiniz. MySQL'in pek çok özelliği desteklemediğini değil, ancak gördüğüm kadarıyla, Oracle için bu şeyleri MySQL'den bilen deneyimli bir DBA bulma olasılığınız çok daha yüksek.
  • PostgreSQL ile MySQL arasında yapabileceğimden daha iyi olduğunu söyleyen kapsamlı karşılaştırmalar için SO'ya bu soruya bakın .
  • Daha da fazla SO: MySQL'in diğer veritabanlarına karşı dezavantajları

Diğer türler yerine RDBMS'leri kullanma:

Tüm bunlar söyleniyor, MySQL harika bir veritabanı ve son 8 yıldır çok çeşitli web uygulamalarında (e-ticaret, web siteleri / uygulamalar gibi) kullanmayan bir şirkette çalışmadım , kurumsal / B2B, web oyunları). Tipik web uygulaması kullanım durumlarının büyük çoğunluğu için mükemmel bir seçimdir.


4
Özellikle MySQL vs. RDBMS ve RDBMS vs. NoSQL için büyük cevap
Josh K

1
SQL Server ayrıca kümeleme ve gelişmiş özelliklere de sahiptir. Ancak, bu tür şeyleri işleyebilen veya hatta nasıl tasarlanacağını bilen bir mySQL veritabanı uzmanı bulmakta daha fazla sorun yaşayacağınız konusunda haklısınız. Bu insanlar çoğunlukla Oracle, db2 veya SQL Server'da uzmanlaşıyor.
HLGEM

1
@HLGEM, açıklığa kavuştuğunuz için teşekkür ederim, Oracle'ın güçlü yanlarını göstermek istedim, diğer DBMS'lerin bu özellikleri desteklemediğini göstermek istedim. SQL Server kesinlikle bu alanlarda yeteneklidir, sadece Windows başka bir şey için kullanmayan bir şirket için Windows bağımlılığının doğal dezavantajı vardır.
Nicole

1
bu kesinlikle doğrudur, Windows bağımlılığı SQL Server'a zarar verir.
HLGEM

8

MySQL artık Oracle'ın kontrolü altında - açık kaynak olmasına rağmen hala projenin yönüne ve içeri girmeye karar veriyorlar.

Kötü bir veritabanı olması açısından, hayır sadece diğerlerinden daha basittir.

Zayıflıkları arıyorsanız, bunları sizin için göstereceğim, örneğin PostgreSQL'i ele alalım.

  1. MySQL, konteyner türlerinden ve dizilerinden yoksundur.
  2. MySQL gerçek sekanslardan yoksundur (otomatik artım kullanırlar) - Postgres sekansları birden fazla tablonun tek bir sekans kullanmasına izin verir, böylece birden fazla tablodaki kardinaliteyi garanti edebilirsiniz.
  3. Postgres ACID uyumlu, MySQL kısmen uyumludur.
  4. Postgres karakter değiştirmeyi ve metni aynı şekilde uygular (Tost Tabloları) - bu yaklaşımın çoğu MySQL'den daha iyidir.
  5. Postgres'in yalnızca bir depolama arka ucu vardır - bu, her yerde aynı özelliklere sahip olmanızın garanti edildiği anlamına gelir.
  6. Postgres, TCL, Python, R ve Perl'de yazılmış sunucu tarafı işlevlerine izin verir.
  7. Postgres, Python'daki Asenkron sürücüler için iyi bir desteğe sahip - bence MySQL ile biraz hit veya özledim

6

Tarihsel olarak, işlem desteğinde zayıftı ve tutarlı bir veritabanı tutmanız gerekiyorsa işlemler önemlidir. Günümüzde, büyük rap Oracle'ın sahip olduğu.


4

Uzun zamandır MySQL daha çok bir "oyuncak" veritabanıydı. Yuvalanmış alt seçimleri işlemedi, veri bölümlemeyi desteklemedi, birden çok işlem yalıtım düzeyi sunmadı, tetikleyicileri veya saklı yordamları desteklemedi - çok fazla şey. Oracle veya SQL Server arka planından gelen birçok kişi bunu reddetti.

MySQL'in eksikliklerinin birçoğunu görmemenizin gerçek sebebinin, kamuoyundan herhangi bir sözünü silen veya aşağılayan oldukça kuduz bir hayran kitlesine sahip olması. Onunla yaşadığım herhangi bir problemden bahsettiğim her an biliyorum, cevaplar ezici bir çoğunlukla olumsuz olma eğilimindedir.


3

MySQL, InnoDB depolama motoruyla birlikte kullanıldığında ACID uyumludur; bunun için hiçbir neden yoktur MySQL'in ACID uyumlu olması gerekir (sürümler 5.5'ten itibaren InnoDB varsayılan depolama motorudur).

MySQL çok kötü bir baskı alır çünkü sık sık bir veritabanına ihtiyaç duymayan (ve belki de sınırlı RDBMS becerilerine sahip olan) insanlar tarafından tercih edilen RDBMS olarak kullanılır (veya NoSQL'in ortaya çıkmasına kadar). tavır.

MySQL'i çok kullandım ve 5.x geldiğinden beri yol gereksinimlerinin ortası olan kurulumların% 95'i için şikayet edecek çok az şey var.


Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.