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

MySQL Cluster (NDB) vs Replikasi MySQL (InnoDB) untuk aplikasi Rails 3:pro/kontra?

Ada perbandingan yang baik dari InnoDB dan MySQL Cluster (ndb) yang baru-baru ini diposting ke dokumen ... layak untuk dilihat:http://dev.mysql.com/doc/refman/5.1/en/mysql-cluster-compared.html

Arsitektur Cluster terdiri dari kumpulan Server MySQL yang diakses oleh aplikasi; Server MySQL ini sebenarnya tidak menyimpan data Cluster, data dipartisi melalui kumpulan node data di bawah ini. Setiap Server MySQL memiliki akses ke data di semua node data. Jika satu server MySQL mengubah sepotong data, maka data tersebut akan langsung terlihat oleh semua Server MySQL lainnya.

Jelas, arsitektur ini membuatnya sangat mudah untuk menskalakan basis data. Tidak seperti sharding, aplikasi tidak perlu tahu di mana data disimpan - itu hanya dapat memuat keseimbangan di semua Server MySQL yang tersedia. Tidak seperti penskalaan dengan MySQL Replication Cluster memungkinkan Anda untuk menskalakan penulisan dan pembacaan. Node data baru atau server MySQL dapat ditambahkan ke Cluster yang ada tanpa kehilangan layanan ke aplikasi.

Arsitektur shared-nothing MySQL Cluster berarti dapat memberikan ketersediaan yang sangat tinggi (99,999%+). Setiap kali Anda mengubah data, data tersebut direplikasi secara sinkron ke node data kedua; jika satu simpul data gagal maka permintaan baca &tulis aplikasi secara otomatis ditangani oleh simpul data cadangan.

Karena sifat terdistribusi dari MySQL Cluster, beberapa operasi bisa lebih lambat (misalnya GABUNG yang memiliki ribuan hasil sementara - meskipun ada solusi prototipe yang tersedia yang membahas ini) tetapi yang lain bisa sangat cepat dan dapat menskalakan dengan sangat baik (mis. membaca dan menulis kunci). Anda memiliki opsi untuk menyimpan tabel (atau bahkan kolom) dalam memori atau disk dan dengan memilih opsi memori (dengan perubahan yang ditandai ke disk di latar belakang) transaksi dapat sangat cepat.

MySQL Cluster bisa lebih kompleks untuk diatur daripada satu server MySQL tetapi dapat mencegah Anda harus menerapkan sharding atau pemisahan baca/tulis dalam aplikasi Anda. Ayunan dan bundaran.

Untuk mendapatkan kinerja dan skalabilitas terbaik dari MySQL Cluster, Anda mungkin perlu mengubah aplikasi Anda (lihat kertas putih penyetelan kinerja Cluster:http://www.mysql.com/why-mysql/white-papers/mysql_wp_cluster_perfomance.php ). Jika Anda memiliki aplikasi ini biasanya bukan masalah besar tetapi jika Anda menggunakan aplikasi orang lain yang tidak dapat Anda ubah maka itu bisa menjadi masalah.

Catatan terakhir adalah bahwa itu tidak perlu semuanya atau tidak sama sekali - Anda dapat memilih untuk menyimpan beberapa tabel Anda di Cluster dan beberapa menggunakan mesin penyimpanan lain, ini adalah opsi per-tabel. Anda juga dapat mereplikasi antara Cluster dan mesin penyimpanan lainnya (misalnya, menggunakan Cluster untuk database run-time Anda dan kemudian mereplikasi ke InnoDB untuk menghasilkan laporan yang kompleks).




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Bagaimana Anda menghapus MySQL dari Mac OS X?

  2. KESALAHAN 1878 (HY000):Kegagalan penulisan file sementara

  3. Solusi untuk subquery mengembalikan lebih dari 1 baris kesalahan

  4. Mungkinkah menghapus semuanya setelah 'spasi' di bidang MySQL?

  5. Pilih catatan hanya jika yang sebelumnya memiliki nilai lebih rendah