Jebakan menggunakan MySQL sebagai pilihan database Anda? [Tutup]

20

Saya telah membaca online pada beberapa kesempatan bahwa MySQL adalah database yang buruk. Tempat-tempat yang saya baca ini termasuk beberapa utas di Reddit, tetapi mereka sepertinya tidak pernah menyelidiki mengapa itu adalah produk yang buruk.

Apakah ada kebenaran dalam klaim ini? Saya tidak pernah menggunakannya di luar skenario CRUD yang sangat sederhana, dan itu untuk proyek universitas selama tahun kedua saya.

Jebakan apa, jika ada , yang ada saat memilih MySQL sebagai basis data Anda?


sumber
7
Perangkap utama, tentu saja, adalah bahwa fanatik Postgres akan mencoba membuat Anda merasa tidak aman tentang pilihan Anda.
Dan Ray
Wikimedia menggunakannya, jadi seharusnya tidak terlalu buruk.
Arlen Beiler

Jawaban:

32

Ada dua jenis perangkap, yaitu dari menggunakan MySQL sebagai selera Anda dari RDBMS dan yang menggunakan RDBMS alih-alih jenis database lainnya.

Menggunakan MySQL alih-alih RDBMS alternatif:

  • Lihat tabel perbandingan wikipedia ini untuk berbagai perbandingan MySQL dengan RDBMS lainnya.
  • Anda kemungkinan besar akan lebih suka Microsoft SQL Server jika Anda sedang membangun aplikasi web ASP.NET, karena sistem ini dirancang untuk bekerja bersama dengan baik, saya percaya untuk pengembang dan manajer TI
  • Anda dapat memilih Oracle jika Anda membutuhkan pengaturan DB yang lebih canggih yang melibatkan pengelompokan (Oracle RAC) atau prosedur DB canggih. Bukan berarti MySQL tidak mendukung banyak fitur, tetapi dari apa yang saya lihat, Anda jauh lebih mungkin menemukan DBA berpengalaman yang mengetahui hal-hal ini untuk Oracle daripada MySQL.
  • Lihat pertanyaan ini di SO untuk perbandingan ekstensif PostgreSQL dengan MySQL yang mengatakannya lebih baik daripada yang saya bisa.
  • Bahkan lebih SO: Kerugian mysql versus database lain

Menggunakan RDBMS daripada jenis lainnya:

Semua yang dikatakan, MySQL adalah database yang bagus , dan saya belum pernah bekerja di sebuah perusahaan dalam 8 tahun terakhir yang belum menggunakannya, dalam berbagai macam aplikasi web (seperti e-commerce, situs web / aplikasi , perusahaan / B2B, permainan web). Untuk sebagian besar kasus penggunaan aplikasi web biasa, ini merupakan pilihan yang bagus.

Nicole
sumber
4
Jawaban yang bagus, terutama untuk MySQL vs. RDBMS dan RDBMS vs. NoSQL
Josh K
1
SQL Server juga memiliki fitur clustering dan lanjutan. Tetapi Anda benar bahwa Anda akan lebih kesulitan menemukan pakar basis data mySQL yang dapat menangani hal-hal seperti itu atau bahkan tahu cara mendesainnya. Orang-orang itu kebanyakan berspesialisasi dalam Oracle, db2 atau SQL Server.
HLGEM
1
@HLGEM, terima kasih telah menjelaskan itu, saya bermaksud menunjukkan kekuatan apa yang dimiliki Oracle, bukan karena DBMS lain tidak mendukung fitur-fitur itu. SQL Server benar-benar mampu di bidang-bidang itu, ia hanya memiliki kelemahan alami ketergantungan Windows untuk perusahaan yang tidak menggunakan Windows untuk hal lain.
Nicole
1
itu benar-benar benar, ketergantungan Windows menyakitkan SQL Server.
HLGEM
8

MySQL sekarang berada di bawah kendali Oracle - meskipun open source mereka masih memutuskan arah proyek dan apa yang masuk.

Dalam hal menjadi database yang buruk, tidak itu hanya 'lebih sederhana' daripada yang lain.

Jika Anda mencari kelemahan, saya akan menunjukkannya untuk Anda, mari kita ambil PostgreSQL sebagai contoh.

  1. MySQL tidak memiliki jenis dan array wadah.
  2. MySQL tidak memiliki urutan yang benar (mereka menggunakan penambahan otomatis) - Urutan postgres memungkinkan beberapa tabel untuk menggunakan urutan tunggal sehingga Anda dapat menjamin kardinalitas di beberapa tabel.
  3. Postgres adalah ACID compliant, MySQL sebagian compliant.
  4. Postgres mengimplementasikan karakter yang bervariasi, dan teks dengan cara yang sama (Toast Tables) - pendekatan ini kebanyakan berpendapat lebih baik daripada MySQL.
  5. Postgres hanya memiliki satu backend penyimpanan - ini berarti Anda dijamin memiliki fitur yang sama di mana-mana.
  6. Postgres memungkinkan fungsi sisi-server yang ditulis dalam TCL, Python, R dan Perl.
  7. Postgres memiliki dukungan yang baik untuk driver Asynchronous di Python - saya pikir ini sedikit hit atau miss dengan MySQL
Ben DeMott
sumber
6

Secara historis, itu lemah pada dukungan transaksi, dan transaksi penting jika Anda perlu menjaga database yang konsisten. Saat ini, masalah terbesarnya adalah Oracle yang memilikinya.

David Thornley
sumber
4

Untuk waktu yang lama MySQL lebih dari database "mainan". Itu tidak menangani sub-seleksi bersarang, tidak mendukung partisi data, tidak menawarkan beberapa tingkat isolasi transaksi, tidak mendukung pemicu atau prosedur tersimpan - banyak hal. Banyak orang yang datang dari latar belakang Oracle atau SQL Server menolaknya.

Saya pikir alasan sebenarnya Anda tidak melihat banyak daftar kekurangan MySQL adalah karena memiliki basis penggemar yang agak fanatik yang menghapus atau menurunkan setiap penyebutan publik tentang mereka. Saya tahu setiap kali saya menyebutkan masalah yang saya alami, responsnya cenderung sangat negatif.

TMN
sumber
3

MySQL adalah ACID compliant ketika digunakan dengan mesin penyimpanan InnoDB - tidak ada alasan untuk tidak begitu MySQL adalah ACID compliant (pada rilis 5.5 InnoDB adalah mesin penyimpanan default).

MySQL mendapat banyak pers yang buruk karena sering digunakan (atau sebelum munculnya NoSQL) sebagai RDBMS pilihan oleh orang-orang yang hampir tidak memerlukan database sama sekali (dan mungkin memiliki keterampilan RDBMS yang terbatas) dan menggunakannya dengan agak kikuk. cara.

Saya telah menggunakan MySQL banyak dan sejak 5.x datang ada sangat sedikit untuk mengeluh tentang hal itu untuk 95% instalasi yang memiliki persyaratan jalan tengah.

glaucon
sumber