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

Bagaimana MySQL Cluster menentukan node data mana yang akan dicari untuk kueri SELECT?

Aduh.. bukan itu cara kerja MySQL Cluster.

Secara default MySQL Cluster mempartisi data pada PRIMARY KEY. Namun dimungkinkan untuk menggunakan partisi dan partisi yang ditentukan pengguna pada bagian KUNCI UTAMA. Ini sangat berguna untuk mengelompokkan data terkait bersama-sama dan untuk memastikan lokalitas data dalam satu partisi. Karena data terkait kemudian disimpan dalam satu partisi, maka dimungkinkan untuk menskalakan dari 2 hingga 48 node data tanpa mengorbankan kinerja - itu akan konstan. Lihat detail selengkapnya di http://dev.mysql.com/doc/refman/5.5/en/partitioning-key.html

Secara default, API akan menghitung hash (menggunakan algoritme LH3*, yang menggunakan md5) pada PRIMARY KEY (atau bagian kunci utama yang ditentukan yang digunakan) untuk menentukan partisi mana yang akan mengirim kueri. Hash yang dihitung adalah 128 bit, dan 64 bit menentukan partisi dan 64 bit menentukan lokasi dalam indeks hash pada partisi. Sebagai pengguna, Anda tidak memiliki wawasan persis node mana yang memiliki data (atau siapa yang akan menyimpan data), tetapi secara praktis hal itu tidak terlalu penting.

Mengenai pertanyaan awal tentang mendistribusikan satu MySQL Cluster di 2 cloud dan mempartisi data. Node Data memerlukan akses latensi rendah yang andal satu sama lain, jadi Anda tidak ingin menyebarkan node kecuali jika jaraknya kurang dari 50-100 mil.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Apa konvensi penamaan yang tepat untuk FK MySQL?

  2. Bagaimana Cara Menyimpan Tag Dalam Database Menggunakan MySQL dan PHP?

  3. dapatkan total batas di mysql menggunakan kueri yang sama?

  4. Metode menemukan kesenjangan dalam data deret waktu di MySQL?

  5. Aktivitas MySQL yang berlebihan