2010-10-20 47 views
10

Tôi muốn nghiên cứu thêm về chủ đề của các mẫu thiết kế dữ liệu hoàn chỉnh. Cụ thể, các hỗn hợp công nghệ khác nhau để lưu trữ, xử lý, lưu trữ và truy xuất dữ liệu. Nói cách khác, hãy xem có bao nhiêu thành phần được sử dụng trong các hệ thống lớn như facebook.Mẫu thiết kế dữ liệu/cơ sở dữ liệu?

Theo hiểu biết của tôi, chúng tôi có RBMSNoSQL hương vị của danh mục cơ sở dữ liệu. Tuy nhiên, nhiều công nghệ hơn (ngoài lưu trữ dữ liệu cố định) là rất quan trọng trong việc sử dụng dữ liệu thực tế - chẳng hạn như memcached. Tuy nhiên, tôi không thể tìm thấy rất nhiều về các mẫu thiết kế bao quát nên được sử dụng để tận dụng tối đa tất cả các kiến ​​trúc.

Có ai có liên kết đến các bài viết về toàn bộ gói mẫu thiết kế có thể được thực hiện với các hỗn hợp khác nhau của các thành phần hệ thống cơ sở dữ liệu không?

Đây không phải là câu hỏi cho các phương pháp hay nhất dành cho DB như database normalization. Đây cũng không phải là câu hỏi về cách tốt nhất để sử dụng một số certain technology.

Các mẫu thiết kế nào có thể được sử dụng để kết hợp các công nghệ lạ một cách chính xác để tận dụng từng điểm mạnh để thiết kế các hệ thống hoàn chỉnh và hiệu quả? Từ bộ nhớ đệm, đến CRUD, để mở rộng quy mô, để toàn vẹn dữ liệu.

Ví dụ: trên các máy chủ chia sẻ nhỏ, tôi có thể chạy những thứ như blog tắt SQLite vì hầu như tất cả các lần đọc và không ghi. Mặt khác, một số dự án nằm trên VPS cấp thấp và tôi có thể sử dụng bộ nhớ cache MySQL + APC (chỉ sau một máy chủ) để có hiệu suất đáng kinh ngạc khi đọc/ghi cao. Với hơn một VPS memcached là vô địch!

Tôi cũng là người hâm mộ MongoDB và PostgreSQL. Tuy nhiên, MongoDB không sử dụng bất kỳ hình thức giới hạn RAM nào nên bạn thực sự nên có một máy chủ riêng biệt. Tuy nhiên, lưu trữ các đối tượng lớn trong MongoDB và để lại phần còn lại của dữ liệu quan trọng trên PostgreSQL là một win-win.

Tuy nhiên, đây là tất cả các lựa chọn thiết kế rất cơ bản. Các ứng dụng quy mô lớn được thiết kế với nhiều trừu tượng hơn để thúc đẩy mở rộng quy mô và giảm điểm thất bại.

Trả lời

1

Đề xuất của tôi sẽ là đọc khoảng databases nói chung, với một mắt để hiểu các loại khác nhau của storage structures đã được sử dụng.

Một khi bạn có nền này, nó trở nên dễ dàng hơn để phù hợp với công nghệ hiện tại (NoSQL) với cấu trúc lưu trữ (không có lược đồ, có thể mở rộng theo chiều ngang).

+0

Có, một sự hiểu biết cơ bản về các mục tiêu của phần mềm (có rất nhiều!) Là rất quan trọng để bạn không cố ép buộc nó thực hiện nhiệm vụ sai. Điều này rất nguy hiểm nếu dự án thay đổi hướng và ngừng hoạt động theo cách bạn bắt đầu sử dụng nó! – Xeoncross

+0

hehe, bạn thắng. ;) – Xeoncross

+0

Cảm ơn bạn. Cảm ơn nhiều. –

Các vấn đề liên quan