2011-01-27 32 views
62

Bất kỳ quy tắc ngón tay cái nào tốt về cách quyết định sử dụng hai quy tắc nào?Sqlite hoặc MySql? Làm thế nào để quyết định?

Và, nếu bạn tiếp nhận cơ sở dữ liệu Sqlite, và hệ thống dự kiến ​​sẽ "lớn hơn nhiều", cách quyết định có nên gắn bó với nó hoặc chuyển sang MySql không?

+1

Hãy xem xét FirebirdEmbedded, đó là một hỗn hợp rất mạnh mẽ của cả hai. –

+1

Bỏ phiếu để đóng quá rộng. Có thể trùng lặp đã bị xóa: http://stackoverflow.com/questions/3630/sqlite-vs-mysql –

+3

Bây giờ nó là rộng, nhưng, khi đăng loại câu hỏi đó là chấp nhận được, hoặc, ít nhất, được chấp nhận. Tôi hy vọng rằng câu hỏi sẽ không bị xóa, giống như bản sao có thể xảy ra, để những người khác vẫn có thể đọc các thảo luận và đề xuất. – Mawg

Trả lời

69

Bộ tính năng của chúng không giống nhau. Sqlite là một cơ sở dữ liệu nhúng mà không có khả năng mạng (trừ khi bạn thêm chúng). Vì vậy, bạn không thể sử dụng nó trên mạng.

Nếu bạn cần

  • truy cập mạng - ví dụ truy cập từ máy khác;
  • Bất kỳ mức độ đồng thời thực tế nào - ví dụ: nếu bạn cho rằng bạn có thể muốn chạy nhiều truy vấn cùng một lúc hoặc chạy khối lượng công việc có nhiều lựa chọn và một vài cập nhật và muốn chúng hoạt động suôn sẻ, v.v.
  • Ví dụ:
  • sử dụng bộ nhớ, để đệm các phần của cơ sở dữ liệu 1Tb trong bộ nhớ 32G của bạn.

Bạn cần sử dụng mysql hoặc một số RDBMS dựa trên máy chủ khác.

Lưu ý rằng MySQL không phải là lựa chọn duy nhất và có rất nhiều ứng dụng khác có thể tốt hơn cho các ứng dụng mới (ví dụ: pgSQL).

Sqlite là một phần mềm rất, rất đẹp, nhưng chưa bao giờ tuyên bố thực hiện bất kỳ việc nào trong số những thứ mà máy chủ RDBMS thực hiện. Đó là một thư viện nhỏ chạy SQL trên các tệp cục bộ (sử dụng khóa để đảm bảo rằng nhiều quy trình không làm hỏng tệp). Nó thực sự được thử nghiệm và tôi rất thích nó.

Ngoài ra, nếu bạn không thể tự mình chọn chính xác, bạn có thể cần phải thuê một người nào đó trong nhóm của bạn có thể.

+0

Vì vậy, về cơ bản sqllite là một thay thế cho các tập tin truy cập ms. – dvdmn

+2

Ba điểm chính xác là những gì Richard Hipp nói tại: https://youtu.be/Jib2AmRb_rk?t = 1693 –

+0

Vì mục đích đơn giản, tôi luôn có một phần mềm duy nhất là người dùng duy nhất được phép truy cập cơ sở dữ liệu, ngay cả đối với các ứng dụng được kết nối mạng sử dụng cơ sở dữ liệu MySql. – Mawg

9

SQLite out-of-the-box không thực sự là tính năng đầy đủ về đồng thời. Bạn sẽ gặp rắc rối nếu bạn có hàng trăm yêu cầu web đánh cùng cơ sở dữ liệu SQLite.

Bạn chắc chắn nên đi với MySQL hoặc PostgreSQL.

Nếu nó dành cho một dự án một người, thì SQLite sẽ dễ thiết lập hơn.

+0

Vì mục đích đơn giản, tôi luôn có một phần mềm duy nhất là người dùng duy nhất được phép truy cập cơ sở dữ liệu, ngay cả đối với các ứng dụng được kết nối mạng sử dụng cơ sở dữ liệu MySql, nhưng, đặc biệt là đối với Sqlite. – Mawg

6

Một vài xu của tôi cho các thư trả lời tuyệt vời trước đó. trang web www.sqlite.org hoạt động trên cơ sở dữ liệu sqlite. Đây là link khi tác giả (Richard Hipp) trả lời một câu hỏi tương tự.

+0

Cảm ơn bạn đã liên kết, cùng một tác giả tiếp tục với [một bàn làm việc riêng] (http://www.mail-archive.com/[email protected]/msg00464.html) ông đã thử nghiệm trên Athlon 1600 RAM 1 GB. Đĩa IDE 5400RPM. Redhat 7.3. Ông kết luận: «Tôi tin rằng SQLite là thích hợp để sử dụng làm cơ sở dữ liệu chính trên các trang web nhận được tối đa 1 triệu lần truy cập mỗi ngày.» – Rutrus

39

Nhóm sqlite đã xuất bản một bài viết giải thích when to use sqlite được đọc tuyệt vời. Về cơ bản, bạn muốn tránh sử dụng sqlite khi bạn có rất nhiều viết đồng thời hoặc cần phải quy mô đến terabyte dữ liệu. Trong nhiều trường hợp khác, sqlite là một lựa chọn thay thế đáng ngạc nhiên cho một cơ sở dữ liệu "truyền thống" như MySQL.

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