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

Sử dụng chỉ mục tìm kiếm Solr làm cơ sở dữ liệu - điều này có sai không?

Có, bạn có thể sử dụng SOLR làm cơ sở dữ liệu nhưng có một số lưu ý thực sự nghiêm trọng:

  1. Mẫu truy cập phổ biến nhất của SOLR, trên http không đáp ứng đặc biệt tốt với truy vấn hàng loạt. Hơn nữa, SOLR KHÔNG truyền dữ liệu --- vì vậy bạn không thể lặp lại hàng triệu bản ghi cùng một lúc. Điều này có nghĩa là bạn phải rất cẩn thận khi thiết kế các mẫu truy cập dữ liệu quy mô lớn với SOLR.

  2. Mặc dù hiệu suất SOLR mở rộng theo chiều ngang (nhiều máy hơn, nhiều lõi hơn, v.v.) cũng như theo chiều dọc (nhiều RAM hơn, máy tốt hơn, v.v.), khả năng truy vấn của nó bị hạn chế nghiêm trọng so với các RDBMS trưởng thành . Điều đó nói rằng, có một số chức năng tuyệt vời, như truy vấn thống kê trường, khá thuận tiện.

  3. Các nhà phát triển đã quen với việc sử dụng cơ sở dữ liệu quan hệ thường sẽ gặp sự cố khi họ sử dụng các mẫu thiết kế DAO giống nhau trong một mô hình SOLR, do cách SOLR sử dụng các bộ lọc trong các truy vấn. Sẽ có một đường cong học tập để phát triển phương pháp tiếp cận phù hợp để xây dựng một ứng dụng sử dụng SOLR cho một phần của các truy vấn lớn hoặc các sửa đổi trạng thái đầy đủ .

  4. Các công cụ "enterprisy" cho phép quản lý phiên nâng cao và các thực thể đầy đủ trạng thái mà nhiều khuôn khổ web nâng cao (Ruby, Hibernate, ...) cung cấp sẽ phải được ném hoàn toàn ra ngoài cửa sổ .

  5. Cơ sở dữ liệu quan hệ nhằm xử lý các dữ liệu và mối quan hệ phức tạp - và do đó chúng được đi kèm với các chỉ số hiện đại và các công cụ phân tích tự động. Trong SOLR, tôi thấy mình đã viết các công cụ như vậy và kiểm tra mức độ căng thẳng theo cách thủ công, điều này có thể mất thời gian .

  6. Tham gia:đây là kẻ giết người lớn. Cơ sở dữ liệu quan hệ hỗ trợ các phương pháp xây dựng và tối ưu hóa các dạng xem và truy vấn nối các bộ giá trị dựa trên các vị từ đơn giản. Trong SOLR, không có bất kỳ phương pháp mạnh mẽ nào để kết hợp dữ liệu giữa các chỉ số.

  7. Khả năng phục hồi:Để có tính khả dụng cao, SolrCloud sử dụng hệ thống tệp phân tán bên dưới (tức là HCFS). Mô hình này hoàn toàn khác so với mô hình của cơ sở dữ liệu quan hệ, thường có khả năng phục hồi bằng cách sử dụng nô lệ và chính, hoặc RAID, v.v. Vì vậy, bạn phải sẵn sàng cung cấp cơ sở hạ tầng khả năng phục hồi mà SOLR yêu cầu nếu bạn muốn nó có khả năng mở rộng và chống lại đám mây.

Điều đó nói lên rằng - có rất nhiều lợi thế rõ ràng đối với SOLR cho một số tác vụ nhất định:(xem http://wiki. apache.org/solr/WhyUseSolr ) - các truy vấn lỏng lẻo dễ chạy hơn nhiều và trả về các kết quả có ý nghĩa. Việc lập chỉ mục được thực hiện như một vấn đề mặc định, vì vậy hầu hết các truy vấn tùy ý đều chạy khá hiệu quả (không giống như RDBMS, nơi bạn thường phải tối ưu hóa và hủy chuẩn hóa sau khi thực tế).

Kết luận: Mặc dù bạn CÓ THỂ sử dụng SOLR làm RDBMS, bạn có thể thấy (như tôi đã nói) rằng cuối cùng là "không có bữa trưa miễn phí" - và tiết kiệm chi phí của các tìm kiếm văn bản lucene cực hay và lập chỉ mục trong bộ nhớ, hiệu suất cao, thường bị trả giá do kém linh hoạt hơn và việc áp dụng quy trình công việc truy cập dữ liệu mới.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. MySQL - trường SELECT WHERE IN (truy vấn con) - Tại sao cực kỳ chậm?

  2. Cách khôi phục cơ sở dữ liệu MySQL từ các tệp .myd, .myi, .frm

  3. Cách cập nhật từ lựa chọn với Tham gia

  4. Cố gắng lấy thuộc tính của non-object - CodeIgniter

  5. MySQL Tree được sắp xếp theo thứ tự của cha mẹ và con