Mysql
 sql >> Teknologi Basis Data >  >> RDS >> Mysql

MySQL versus MariaDB

MySQL versus MariaDB

Kisah Belakang MySQL dan MariaDB

MySQL dan MariaDB berbagi beberapa sejarah umum, keduanya dinamai putri pengembang Michael Widenius, My dan Maria. MySQL dibuat pada tahun 1995 oleh perusahaan perangkat lunak Swedia, MySQL AB . Ini semakin populer selama bertahun-tahun dan menjadi standar untuk sistem manajemen basis data relasional sumber terbuka. Pada tahun 2008, Sun membeli MySQL AB (dan akhirnya MySQL) seharga $1 miliar. Tidak lama setelah Sun dibeli oleh Oracle pada bulan April 2009. Pada titik ini, Oracle, sistem database yang bersaing, menjadi pemilik MySQL. Ini mengganggu pengembang asli melihat bagaimana mereka merasa masa depan MySQL dalam bahaya. Mengikuti aturan open source, mereka memutuskan untuk "fork" MySQL dan membuat MariaDB. Dan begitulah, MySQL dan MariaDB berbagi sejarah!

Kami memiliki tutorial yang bagus tentang cara menginstal MariaDB untuk menggantikan MySQL di WHM.

Versi Replikasi MySQL dan MariaDB

Tuan Budak→→ MariaDB-5.5 MariaDB-10.0 MariaDB-10.1 MariaDB-10.2 MySQL-5.6 MySQL-5.7 MySQL-8.0
MariaDB-5.5 Oke Tidak Tidak Tidak Tidak Tidak Tidak
MariaDB-10.0 Oke Oke Oke
MariaDB-10.1 Oke Oke Oke Oke
MariaDB-10.2 Oke Oke Oke Oke Oke Oke

Perbandingan Fitur MySQL dan MariaDB

Mesin Penyimpanan Lebih Banyak

MariaDB berisi mesin penyimpanan standar MyISAM, BLACKHOLE, CSV, MEMORY, ARCHIVE, dan MERGE. Ini juga mencakup beberapa mesin penyimpanan yang kurang umum seperti;

  • Cassandra (MariaDB 10.0)
  • Laba-laba (MariaDB 10.0+)
  • Urutan (MariaDB 10.0+)
  • HUBUNGKAN (MariaDB 10.0+)
  • TokuDB (MariaDB 5.5+)
  • SphinxSE (MariaDB 5.2+)
  • OQGRAPH (Tidak Tersedia di MariaDB 5.5)
  • FederatedX (Penggantian Federated)
  • Aria (pengganti MyISAM dengan caching yang ditingkatkan)
  • MyRocks (mesin penyimpanan MariaDB 10.2 dengan kompresi yang ditingkatkan)
  • ColumnStore (mesin penyimpanan berorientasi kolom yang dioptimalkan untuk pergudangan data)

Peningkatan Kecepatan

MariaDB memiliki banyak peningkatan yang lebih baik dibandingkan MySQL saat membandingkan fitur Pengoptimal:

Fitur MariaDB 5.3/5.5 MariaDB 10.0 MySQL 5.5 MySQL 5.6
Pengoptimalan akses disk
Penurunan Kondisi Indeks (ICP) YA YA YA
Disk-sweep Multi-range read (DS-MRR) YA YA YA
DS-MRR dengan Pengambilan berdasarkan kunci YA YA
Index_merge / Sort_intersection YA YA
Pilihan rentang berbasis biaya vs. index_merge YA YA
PESAN BERDASARKAN … BATAS YA YA
Gunakan kunci utama yang diperluas (tersembunyi) untuk innodb/xtradb YA (5.5) YA
Gabung dengan pengoptimalan
Akses kunci batch (BKA) YA YA YA
Blokir hash join YA YA
Batas memori yang ditetapkan pengguna pada semua buffer gabungan YA YA
Terapkan kondisi awal tabel luar AKTIF YA YA
Kondisi penolakan nol diuji lebih awal untuk NULL YA YA
Pengoptimalan subkueri
In-to-exist YA YA YA YA
Semi-gabung YA YA YA
Materialisasi YA YA YA
Materialisasi yang sadar NULL YA YA
Pilihan biaya materialisasi vs. yang sudah ada YA YA YA
Cache subkueri YA YA
Penjelasan cepat dengan subkueri YA YA
ADA-ke-IN YA
Optimasi untuk tabel/tampilan turunan
Tertundanya materialisasi tabel turunan / tampilan material YA YA YA
MENJELASKAN Instan untuk tabel turunan YA YA YA
Tabel Turunan dengan pengoptimalan Kunci YA YA YA
Bidang tampilan yang dapat digabungkan dan tabel turunan yang digunakan dalam pengoptimalan kesetaraan YA YA
Kontrol eksekusi
BATAS BARIS YANG DIPERIKSA rows_limit YA (5.5) YA
Kontrol pengoptimal (saklar pengoptimal)
Kontrol sistematis semua strategi pengoptimal YA YA sebagian
MENJELASKAN peningkatan
Jelaskan untuk DELETE, INSERT, REPLACE, dan UPDATE Sebagian YA
Jelaskan dalam format JSON YA
MENJELASKAN lebih detail dan konsisten untuk subkueri YA YA
Jejak pengoptimal
Jejak pengoptimal YA

  • Replikasi paralel — baru di 10.0; berlangsung dalam tiga bagian:peristiwa replikasi dibaca oleh utas IO dan diantrekan di log relai, diambil satu per satu oleh utas SQL dari log relai, dan setiap peristiwa diterapkan pada budak yang mereplikasi perubahan pada master.
  • Peningkatan kinerja mencakup subsistem IO asinkron InnoDB yang lebih baik di Windows.
  • Indeks untuk mesin MEMORY(HEAP) lebih cepat. Perbaikan terbaru diterapkan di MariaDB 5.5 dan MySQL 5.7.
  • Cache Kunci Tersegmentasi untuk MyISAM telah ditambahkan di MariaDB 5.2. Ini telah meningkatkan kinerja di tabel MyISAM hingga 4x.
  • Pada versi 10.0.13, ukuran hash yang dapat disesuaikan untuk MyISAM dan Aria meningkatkan waktu shutdown jika Anda menggunakan banyak tabel MyISAM/Aria dengan kunci yang tertunda.
  • Dengan CHECKSUM TABLE menggunakan opsi CEPAT, kecepatan ditingkatkan.
  • Kinerja ditingkatkan dengan konversi kumpulan karakter dan penghapusan konversi (bila tidak diperlukan). Peningkatan kecepatan secara keseluruhan adalah sekitar 1-5% tetapi bisa lebih cepat dengan kumpulan hasil yang besar.
  • Kumpulan Utas di MariaDB 5.1/MariaDB 5.5 memungkinkan MariaDB berjalan dengan 200.000+ koneksi yang mengarah pada peningkatan kecepatan saat menggunakan banyak koneksi.
  • Peningkatan koneksi klien ditambahkan pada MariaDB 10.1 dan MariaDB 10.2.
  • Beberapa peningkatan pada kode DBUG dalam MariaDB membantu membuat kode berjalan lebih cepat dengan debug yang dikompilasi, tetapi tidak digunakan.
  • Menggunakan mesin penyimpanan Aria menggunakan tabel sementara internal memungkinkan peningkatan kinerja.
  • Rangkaian pengujian berjalan lebih cepat bahkan dengan daftar pengujian yang diperluas.

Fitur dan Ekstensi Baru

Pengujian Lebih Baik

MariaDB berisi lebih banyak tes di test suite daripada MySQL. Tidak valid dan tes yang tidak perlu telah dihapus. Masalah dengan rangkaian pengujian telah diperbaiki.

Lebih Sedikit Bug

Saat ini, komunitas MariaDB waspada dan bekerja untuk memperbaiki bug secepat dan selengkap mungkin. Selain itu, peringatan kompiler juga telah dikurangi sebagai akibat dari pengurangan bug.

Sumber Terbuka

Semua kode sumber untuk MariaDB dirilis di bawah GPL, LGPL, atau BSD. Sementara MySQL memiliki modul sumber tertutup di Edisi Perusahaan mereka, MariaDB tidak memiliki modul sumber tertutup. MariaDB menyertakan semua fitur sumber tertutup yang terdapat dalam MySQL 5.5 Enterprise Edition dalam versi sumber terbukanya. MariaDB menyertakan kasus uji untuk semua bug baru yang diperbaiki. MySQL tidak menyediakan kasus uji untuk bug yang diperbaiki di MySQL 5.5. MariaDB membuat semua rencana pengembangan masa depan publik, termasuk bug dan perbaikannya. MariaDB memiliki komunitas besar dan komunitas pengembang itu mencakup berbagai macam kontributor sedangkan semua pembuat komitmen ke MySQL tampaknya berasal dari karyawan Oracle. Pustaka klien MySQL dirilis di bawah lisensi GPL yang melarang penautan ke aplikasi sumber tertutup. Sebaliknya, MariaDB melisensikan pustaka klien di bawah lisensi LGPL yang memungkinkan penautan ke perangkat lunak sumber tertutup.

Masalah Kompatibilitas antara MariaDB &MySQL

MariaDB dirancang untuk menjadi pengganti drop-in untuk MySQL dan merupakan cabang dari basis kode MySQL asli. Ini berarti bahwa ketika beralih dari MySQL ke MariaDB, ini adalah proses yang relatif mudah. Anda cukup uninstall MySQL dan install MariaDB. Karena ini adalah pengganti drop-in, tidak perlu mengonversi data apa pun. Pengembang MariaDB melakukan penggabungan bulanan kode MySQL untuk memastikan mereka tetap kompatibel. Ada perbedaan ketidaksesuaian antara versi MySQL dan MariaDB meskipun versi dirancang agar kompatibel dengan nomor versi masing-masing (misalnya MySQL 5.1 -> MariaDB 5.1 &MySQL 5.5 -> MariaDB 5.5).

Inkompatibilitas antara MariaDB 10.0 &MariaDB 5.5 / MySQL 5.5

  • Sintaksis SET OPTION tidak digunakan lagi di MariaDB 10.0 dan MySQL 5.6. Gunakan hanya SET.

Inkompatibilitas antara MariaDB 10.0 &MySQL 5.6

  • Semua binari MySQL (MySQLd, myisamchk, dll.) memberikan peringatan jika seseorang menggunakan awalan opsi (seperti –big-table bukan –big-tables). Binari MariaDB bekerja dengan cara yang sama seperti kebanyakan perintah Unix lainnya dan tidak memberikan peringatan saat menggunakan awalan yang unik.
  • MariaDB GTID tidak kompatibel dengan MySQL 5.6. Ini berarti bahwa seseorang tidak dapat memiliki MySQL 5.6 sebagai budak untuk MariaDB 10.0. Namun MariaDB 10.0 dapat menjadi budak MySQL 5.6 atau versi MySQL/MariaDB sebelumnya.
  • Replikasi multi-sumber MariaDB 10.0 tidak didukung di MySQL 5.6.
  • Kolom dinamis MariaDB 10.0 tidak didukung oleh MySQL 5.6.
  • Untuk membuat CREATE TABLE … SELECT bekerja dengan cara yang sama dalam replikasi berbasis pernyataan dan berbasis baris, secara default dijalankan sebagai CREATE OR REPLACE TABLE pada slave. Salah satu keuntungannya adalah jika slave mati di tengah CREATE … SELECT, ia akan dapat melanjutkan.
  • Seseorang dapat menggunakan variabel slave-ddl-exec-mode untuk menentukan bagaimana CREATE TABLE dan DROP TABLE direplikasi.
  • Lihat juga rincian rincian perbedaan variabel Sistem antara MariaDB 10.0 dan MySQL 5.6.
  • MySQL 5.6 memiliki skema kinerja yang diaktifkan secara default. Untuk alasan kinerja, MariaDB 10.0 menonaktifkannya secara default. Anda dapat mengaktifkannya dengan memulai MySQLd dengan opsi –performance-schema.
  • MariaDB 10.0 tidak mendukung plugin MySQL Memcached.
  • Pengguna yang dibuat dengan algoritme kata sandi SHA256 MySQL tidak dapat digunakan di MariaDB 10.0.
  • MariaDB 10.0 tidak mendukung replikasi tertunda – MDEV-7145.

Inkompatibilitas antara MariaDB 10.1 &MySQL 5.7

  • MariaDB 10.1 tidak mendukung JSON MySQL 5.7.
  • Enkripsi InnoDB MariaDB 10.1 diimplementasikan secara berbeda dari enkripsi InnoDB MySQL 5.7.
  • MariaDB 10.1 tidak mendukung plugin parser teks lengkap ngram dan MeCab – MDEV-10267, MDEV-10268.
  • MariaDB 10.1 tidak mendukung beberapa pemicu untuk sebuah tabel – MDEV-6112.
  • MariaDB 10.1 tidak mendukung CREATE TABLESPACE untuk InnoDB.

Inkompatibilitas antara MariaDB 10.2 &MySQL 5.7

  • Perbedaan variabel sistem antara MariaDB 10.2 dan MySQL 5.7.
  • Perbedaan fungsi antara MariaDB 10.2 dan MySQL 5.7.
  • Beberapa pemicu per tabel ditambahkan di 10.2
  • Enkripsi MariaDB InnoDB diimplementasikan secara berbeda dari enkripsi InnoDB MySQL 5.7.
  • MariaDB menyimpan JSON sebagai teks asli, bukan dalam format biner seperti MySQL. Alasannya adalah fungsi JSON kami jauh lebih cepat daripada MySQL sehingga kami tidak perlu melihat kebutuhan untuk menyimpan sesuatu dalam format biner karena menambah banyak kerumitan saat memanipulasi objek JSON.
  • MariaDB 10.2 tidak mendukung plugin parser teks lengkap ngram dan MeCab – MDEV-10267, MDEV-10268.
  • MariaDB 10.2 tidak mendukung plugin MySQL X.
  • MariaDB 10.2 tidak mendukung ruang tabel umum MySQL.
  • Lihat juga Inkompatibilitas antara MariaDB 10.1 dan MySQL 5.7.

  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. MySQL INSERT IF (pernyataan if khusus)

  2. Cara Mendapatkan Sisa Menggunakan MOD() di PostgreSQL, MS SQL Server, dan MySQL

  3. Cara mengganti nama database MySQL

  4. Cara Mendapatkan Nama Bulan Pendek dari Tanggal di MySQL

  5. Cara menggunakan cPanel MySQL Database Wizard