Sqlite hay MySql? Làm thế nào để quyết định? [đóng cửa]


94

Bất kỳ quy tắc ngón tay cái nào tốt về cách quyết định sử dụng cái nào trong hai cái?

Và, nếu bạn tiếp quản một cơ sở dữ liệu Sqlite và hệ thống được cho là sẽ "lớn hơn nhiều", làm thế nào để quyết định xem bạn sẽ gắn bó với nó hay chuyển sang MySql?


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

1
Bỏ phiếu để đóng vì quá rộng. Có thể trùng lặp đã bị xóa: stackoverflow.com/questions/3630/sqlite-vs-mysql
Ciro Santilli 郝海东 冠状 病 六四 事件 法轮功

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

5
Thật đáng tiếc khi những câu hỏi có tác động và khả năng hiển thị cao (nhìn vào số lượt bình chọn bên dưới) đang bị đóng lại bởi các "giám sát viên" của trang web này. Điều này làm cho toàn bộ quá trình giám sát và lựa chọn giám sát khá đáng ngờ.
francogrex

2
Các tiêu chuẩn, giá trị và mục tiêu của trang web đã thay đổi theo năm tháng. "Chủ yếu dựa trên ý kiến" không còn được chấp nhận. Nếu tôi muốn hỏi điều này hôm nay, tôi sẽ hỏi trên trang softwarerecs.stackexchange.com , không phải ở đây, và sẽ liệt kê các yêu cầu của tôi đối với cơ sở dữ liệu và nhận các đề xuất. Tôi hiểu tại sao câu hỏi của mình bị đóng, nhưng tôi vẫn hoài niệm về một thời mà chúng ta từng có thẻ sách và từ "hay nhất" trong tiêu đề không có nghĩa là đóng ngay lập tức: - / YMMV
Mawg nói hãy phục hồi Monica

Câu trả lời:


103

Bộ tính năng của chúng hoàn toàn không giống nhau. Sqlite là một cơ sở dữ liệu nhúng 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ột máy khác;
  • Bất kỳ mức độ đồng thời thực sự nào - ví dụ: nếu bạn nghĩ rằng bạn có khả năng 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 diễn ra suôn sẻ, v.v.
  • sử dụng nhiều bộ nhớ, ví dụ, để đệ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 lựa chọn 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 hay, nhưng nó chưa bao giờ tuyên bố thực hiện bất kỳ điều gì mà các máy chủ RDBMS làm. Đó 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 tốt và tôi thích nó rất nhiều.

Ngoài ra, nếu bạn không thể tự mình chọn điều này một cách 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ể.


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

2
Ba điểm đó chính xác là những gì Richard Hipp nói tại: youtu.be/Jib2AmRb_rk?t=1693
Ciro Santilli 郝海东 冠状 病 六四 事件 法轮功

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

57

Nhóm sqlite đã xuất bản một bài báo giải thích khi nào sử dụng sqlite mà bạn nên đọc. Về cơ bản, bạn muốn tránh sử dụng sqlite khi bạn có nhiều quá trình ghi đồng thời hoặc cần chia tỷ lệ đến hàng terabyte dữ liệu. Trong nhiều trường hợp khác, sqlite là một sự thay thế tốt đáng ngạc nhiên cho một cơ sở dữ liệu "truyền thống" như MySQL.


11

SQLite out-of-box không thực sự đầy đủ tính năng liên quan đến đồ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 truy cập vào cùng một cơ sở dữ liệu SQLite.

Bạn chắc chắn nên sử dụng MySQL hoặc PostgreSQL.

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


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

10

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


1
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 của riêng anh ấy đã thử nghiệm trên Athlon 1600. RAM 1GB. Đĩa 5400RPM IDE. Làm lại 7.3. Ông kết luận: «Bây giờ tôi tin rằng SQLite thích hợp để sử dụng làm cơ sở dữ liệu chính trên các trang web có tới 1 triệu lượt truy cập mỗi ngày.»
Rutrus
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.