2013-08-06 30 views
6

Đối với chương trình liên kết cào của tôi (viết bằng python3.3) Tôi muốn sử dụng một cơ sở dữ liệu để lưu trữ khoảng 100.000 trang web:cơ sở dữ liệu quan hệ nhanh để sử dụng đơn giản với Python

  • chỉ URL,
  • một thời gian đóng dấu
  • và cho mỗi trang web một danh sách các thuộc tính

tôi không có kiến ​​thức về cơ sở dữ liệu, nhưng không tìm thấy những điều sau đây có thể phù hợp với mục đích của tôi:

  • PostgreSQL
  • SQLite
  • Firebird

Tôi quan tâm đến tốc độ (để truy cập cơ sở dữ liệu và để có được thông tin truy nã). Ví dụ: đối với trang web x có thuộc tính y tồn tại và nếu có đọc nó. Tốc độ viết cũng là điều quan trọng.

Câu hỏi của tôi: Có sự khác biệt lớn về tốc độ hay không quan trọng đối với chương trình nhỏ của tôi? Có lẽ ai đó có thể biết cơ sở dữ liệu nào phù hợp với yêu cầu của tôi (và dễ xử lý với Python).

Trả lời

4

Kích thước và quy mô cơ sở dữ liệu của bạn không lớn, và nó nằm trong phạm vi của hầu hết các giải pháp cơ sở dữ liệu ngoài giá.

Về cơ bản, những gì bạn định làm là cài đặt máy chủ cơ sở dữ liệu trên máy của bạn và nó sẽ xuất hiện trên một cổng nhất định. Sau đó bạn có thể cài đặt một thư viện bằng Python để truy cập nó.

Ví dụ, nếu bạn muốn sử dụng PostgreSQL, bạn sẽ cài đặt nó trên máy tính của bạn và nó sẽ xuất hiện gắn liền với một số cảng như 5000, hoặc cổng 5432.

Nhưng nếu bạn chỉ có những thông tin bạn đang nói về để lưu trữ và truy xuất, bạn có thể muốn đi với một giải pháp NoSQL vì nó rất dễ dàng. Ví dụ, bạn có thể install mongodb trên máy chủ của mình, sau đó cài đặt pymongo. Hướng dẫn cho pymongo sẽ dạy cho bạn khá nhiều thứ bạn cần cho ứng dụng của bạn.

5

Nếu tốc độ là tiêu chí chính, thì tôi khuyên bạn nên sử dụng cơ sở dữ liệu trong bộ nhớ. Hãy xem http://docs.python.org/2/library/sqlite3.html

nó cũng có thể được sử dụng như một cơ sở dữ liệu bình thường, sử dụng bên dưới và db sẽ được tạo trong chính RAM và truy cập thời gian chạy nhanh hơn nhiều.

import sqlite3 
conn = sqlite3.connect(':memory:') 
+0

Có lẽ tôi chưa đủ rõ ràng. Chương trình của tôi sẽ chạy trên máy chủ 24/7 và có thể kết nối với db từ các máy khác. – zwieback86

+0

trong trường hợp đó, bạn nên sử dụng một cách tiếp cận lai hơn như mongodb. nơi db là bộ nhớ ánh xạ để bạn có thể truy cập nhanh và nó cũng nằm trên đĩa. http://docs.mongodb.org/manual/faq/storage/ – v2b

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