Mysql
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Mysql

Làm cách nào để MySQL Cluster xác định các nút dữ liệu cần tìm kiếm cho một truy vấn SELECT?

Rất tiếc .. đó không phải là cách MySQL Cluster hoạt động.

Theo mặc định, MySQL Cluster phân vùng dữ liệu trên KHÓA CHÍNH. Tuy nhiên, có thể sử dụng phân vùng do người dùng định nghĩa và phân vùng trên một phần của KHÓA CHÍNH. Điều này cực kỳ hữu ích để nhóm các dữ liệu liên quan lại với nhau và đảm bảo vị trí của dữ liệu trong một phân vùng. Vì dữ liệu liên quan sau đó được giữ trong một phân vùng nên sau đó có thể mở rộng quy mô từ 2 đến 48 nút dữ liệu mà không làm giảm hiệu suất - nó sẽ không đổi. Xem thêm chi tiết tại http://dev.mysql.com/doc/refman/5.5/en/partitioning-key.html

Theo mặc định, API sẽ tính toán một hàm băm (sử dụng thuật toán LH3 *, sử dụng md5) trên KHÓA CHÍNH (hoặc phần đã xác định đã sử dụng của khóa chính) để xác định phân vùng nào sẽ gửi truy vấn. Hàm băm được tính toán là 128 bit, và 64 bit xác định phân vùng và 64 bit xác định vị trí trong chỉ mục băm trên phân vùng. Với tư cách là người dùng, bạn không có thông tin chi tiết chính xác nút nào có dữ liệu (hoặc ai sẽ lưu trữ dữ liệu), nhưng trên thực tế, điều đó không thực sự quan trọng.

Về câu hỏi ban đầu về việc phân phối một Cụm MySQL trên 2 đám mây và dữ liệu phân vùng. Các nút dữ liệu cần quyền truy cập có độ trễ thấp đáng tin cậy với nhau, vì vậy bạn sẽ không muốn trải các nút ra ngoài trừ khi chúng cách nhau dưới 50-100 dặm.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Làm cách nào để xem tất cả các khóa ngoại cho một bảng hoặc cột?

  2. MySQL Workbench bỏ qua khóa ngoại

  3. Cách sử dụng 'select' trong câu lệnh 'insert' MySQL

  4. ADDDATE () Ví dụ - MySQL

  5. MySQL có cho phép gọi lại trong C để khi thay đổi xảy ra, tôi có thể được thông báo không?