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

MySQL - Phương pháp tốt nhất để xử lý dữ liệu phân cấp này?

Quassnoi đã chạy một số bài kiểm tra hiệu suất trên mô hình tập hợp lồng nhau và mô hình danh sách kề và ghi lại kết quả và đề xuất trong bài đăng trên blog của anh ấy Danh sách gần kề so với các tập hợp lồng nhau:MySQL . Tóm tắt điều hành là:

  • Các tập hợp lồng nhau nhanh hơn để tìm nạp tất cả các nút con hoặc tất cả các nút cha.
  • Các tập hợp lồng nhau là một ý tưởng tồi nếu bạn thường xuyên cần cập nhật bảng.

Đây là kết luận từ bài báo của anh ấy:

Phần còn lại của bài viết chỉ ra cách xác định bảng, triển khai các truy vấn và đưa ra các phép đo hiệu suất. Việc sử dụng chỉ mục không gian là một ý tưởng thông minh để cải thiện hiệu suất của mô hình tập hợp lồng nhau có thể mới đối với bạn.

Nếu bạn cũng đang xem xét các phương pháp tiếp cận mà không có MySQL thì bạn có thể muốn xem PostgreSQL là một cơ sở dữ liệu mã nguồn mở và miễn phí khác. PostgreSQL hỗ trợ truy vấn đệ quy ở dạng biểu thức bảng phổ biến đệ quy giúp truy vấn dữ liệu thứ cấp dễ dàng hơn trong MySQL và cũng cho hiệu suất tốt hơn. Quassnoi cũng đã viết một bài báo Danh sách gần kề vs. bộ lồng nhau:PostgreSQL hiển thị chi tiết.

Trong khi chúng ta đang nói về việc xem xét các cách tiếp cận khác, cơ sở dữ liệu của Oracle cũng đáng được đề cập. Oracle cũng có một phần mở rộng tùy chỉnh CONNECT BY giúp truy vấn dữ liệu thứ cấp rất dễ dàng và nhanh chóng. Bài viết của Quassnoi Danh sách gần kề so với các tập hợp lồng nhau:Oracle một lần nữa bao gồm các chi tiết về hiệu suất. Truy vấn bạn cần để lấy tất cả các phần tử con cực kỳ đơn giản trong trường hợp này:

SELECT *
FROM yourtable
START WITH id = 42
CONNECT BY parent = PRIOR id


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Hibernate CriteriaBuilder để tham gia nhiều bảng

  2. Làm cách nào để tạo cơ sở dữ liệu MySQL từ tệp kết xuất trong tập lệnh Mong đợi / TCL?

  3. Điều đó có nghĩa là gì khi MySQL ở trạng thái Đang gửi dữ liệu?

  4. Cách lấy ngày và giờ hiện tại trong MySQL

  5. Cách chèn giá trị tiếng Do Thái vào db mysql trong php