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

Tôi có thể dự đoán chỉ mục Zend Framework của mình sẽ lớn như thế nào không? (và một số câu hỏi nhanh:s)

SOLR về cơ bản là một vùng chứa Apache Tomcat triển khai giao diện REST để truy vấn chỉ mục Apache Lucene. Có, bạn cần có khả năng chạy ứng dụng Java trên máy chủ web của mình. Đây là vấn đề bạn cần giải quyết với nhà cung cấp dịch vụ lưu trữ của mình.

Khách hàng sử dụng ứng dụng web của bạn không cần chạy Java. Ứng dụng PHP của bạn có thể thực hiện truy vấn REST tới dịch vụ SOLR và định dạng kết quả bằng HTML. Máy khách chỉ nhìn thấy đầu ra HTML; nó không bao giờ cần biết rằng dữ liệu đến từ một dịch vụ được triển khai trong Java.

Zend_Search_Lucene là một triển khai thuần PHP được cho là hoạt động giống hệt với Apache Lucene. Giải pháp Zend thậm chí còn sử dụng một định dạng tệp chỉ mục giống hệt nhau. Vì vậy, chúng phải bằng nhau về mặt lưu trữ.

Tôi đã sử dụng Java Lucene để lập chỉ mục kết xuất dữ liệu StackOverflow (tháng 10 năm 2009). Tôi đã lập chỉ mục 1,5 triệu hàng, bao gồm khoảng 1 gig dữ liệu văn bản. Chỉ số Lucene là 1323 MB, trong khi chỉ mục MySQL FULLTEXT của cùng một dữ liệu chỉ là 466 MB.

Sử dụng SQL LIKE Các vị từ thay cho bất kỳ giải pháp lập chỉ mục đầy đủ văn bản nào tất nhiên không yêu cầu khoảng trống, vì dù sao nó cũng không thể sử dụng một chỉ mục thông thường. Nhưng trong các thử nghiệm của tôi bằng cách sử dụng LIKE chậm hơn khoảng 200 lần so với Java Lucene, chậm hơn khoảng 40% so với chỉ mục MySQL FULLTEXT trên cùng một dữ liệu.

Xem bài thuyết trình gần đây của tôi về các giải pháp lập chỉ mục toàn văn bản với MySQL:

http://www.slideshare.net/billkarwin / Practice-full-text-search-with-my-sql

Không có gì ngạc nhiên khi nó không thể sánh được với hiệu suất và khả năng mở rộng của công nghệ Java Lucene. Lợi thế của PHP với tư cách là một ngôn ngữ là tăng hiệu quả phát triển chứ không phải hiệu quả thời gian chạy.

cập nhật: Tôi vừa thử tạo chỉ mục bằng Zend_Search_Lucene . Tạo chỉ mục với PHP chậm hơn nhiều so với công nghệ Java Lucene, vì vậy tôi chỉ lập chỉ mục 10.000 tài liệu. Quá trình này mất gần 15 phút, tức là mất khoảng 36 giờ để lập chỉ mục toàn bộ bộ sưu tập. So sánh điều này với Java Lucene, trong thử nghiệm của tôi đã lập chỉ mục cho toàn bộ bộ sưu tập 1,5 triệu tài liệu trong vòng chưa đầy 7 phút.

Kích thước của chỉ mục tôi đã tạo bằng Zend_Search_Lucene là 8,75 MB. Suy rộng ra 150x này, tôi ước tính chỉ mục đầy đủ sẽ là 1312,5 MB. Vì vậy, tôi kết luận rằng Zend_Search_Lucene tạo một chỉ mục có cùng kích thước với chỉ mục do Java Lucene tạo ra. Điều này đúng như mong đợ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:Tại sao chỉ định chiều rộng hiển thị mà không sử dụng zerofill

  2. MySQL:cột số lượng / tính chọn lọc thấp =làm thế nào để lập chỉ mục?

  3. Cách hiển thị đối chiếu của một bảng trong MySQL

  4. Sự cố với biến trả về trong bash

  5. `date` có phải là tên cột mysql hợp lệ không?