Tôi đang xây dựng một ứng dụng dựa trên một bảng duy nhất có cột có văn bản. Thỉnh thoảng, một cột liền kề sẽ có một hình ảnh. Tốt hơn là lưu trữ hình ảnh này dưới dạng BLOB trong SQLITE hay tôi nên lưu trữ chúng trên hệ thống tệp và tham chiếu chúng từ chương trình của tôi. Cảm ơn!SQLITE Blob HOẶC hệ thống tệp cho hình ảnh
Trả lời
EDIT:
didnt nhận ra rằng mình có nghĩa là cho môi trường iPhone đặc biệt. Trong trường hợp đó tôi sẽ sử dụng DB chỉ vì sự đơn giản của việc có tất cả nội dung ở một nơi. Bạn sẽ không phải lo lắng về khả năng mở rộng vì nó không giống như iphone của bạn sẽ được sử dụng như một máy chủ hoặc bất cứ điều gì.
gốc đáp ứng:
tôi không có bất kỳ liên kết để trở lại này lên, nhưng tôi nhớ đọc trong một số nghiên cứu rằng "cắt đứt" là 1 MB cho hiệu quả blob. Nhưng điều này có thể di chuyển lên đến 10 MB với một mảng đĩa đủ nhanh. Hoàn toàn phụ thuộc vào hệ thống. Vì vậy, về cơ bản, cho hiệu quả của bạn cắt, bất kỳ dữ liệu nhỏ hơn mà tốt hơn sẽ được phục vụ bởi DB, bất cứ điều gì lớn hơn, chỉ cần chỉ số trong DB và để lại trong một bộ nhớ cache tập tin.
Anh ấy đang sử dụng iphone, vì vậy bản thân đĩa không thể nâng cấp được. – Kevlar
ahh, không thấy phần đó. –
Nó thực sự phụ thuộc vào ứng dụng của bạn. Có những hình ảnh được lưu trữ trong cơ sở dữ liệu sẽ làm cho cuộc sống của bạn dễ dàng hơn khi bạn dễ dàng truy cập chúng trong một điểm thay vì đưa chúng vào các tệp riêng biệt có thể bị mất. Mặt khác, nhiều hình ảnh, mà là khá lớn, có thể chứng minh quá nhiều cho một cơ sở dữ liệu SQLite. Trong tình huống của bạn, tôi sẽ chỉ tham chiếu chúng trong cơ sở dữ liệu.
Tệp sẽ khiến bạn ít gặp sự cố trong thời gian dài. Bạn thực sự không muốn phân phối tấn tệp từ máy chủ cơ sở dữ liệu của mình, đặc biệt khi bạn mở rộng
Các tệp sẽ giúp tải hình ảnh một cách hiệu quả hơn. Nếu bạn sử dụng [UIImage imageNamed: @ "blah.png"], nó sẽ tải hình ảnh vào RAM có thể xóa và tải/dỡ nó ra khỏi tập tin khi cần thiết (tức là khi nó không còn xem được nữa và bạn bị chặt vào bộ nhớ nó bị xóa và sau đó được tải lại khi có thể xem lại) – Gabe
Chà ... vì vậy API được kết hợp với hệ thống tệp chứ không phải là loại trừu tượng? ... –
Tôi thích giữ hình ảnh trong hệ thống tệp vì UIImage có thể lưu trữ tệp hình ảnh & tự động lấy chúng khỏi bộ nhớ khi cần. Chỉ cần cẩn thận không thay đổi hoặc xóa tệp hình ảnh được tải vào UIImage hoặc bạn sẽ gặp sự cố hoặc các lỗi lạ khác.
Giả sử hình ảnh bạn định sử dụng không quá lớn và không có số lượng cắt cổ trong số chúng tôi sẽ đi với cơ sở dữ liệu.
Tôi hiện đang sử dụng cơ sở dữ liệu Sqlite trên một số thiết bị Windows Mobile và WinCE khác nhau với hơn 10.000 hình ảnh nhỏ được lưu trữ dưới dạng đốm màu và nó hoạt động rất tốt.
Tôi đã thấy phần mềm tương tự như phần mềm chạy trên cùng một phần cứng sử dụng tải hình ảnh dựa trên tệp và tốc độ chậm hơn đáng kể. Tất nhiên điều này là trên WinCE và phần mềm khác nhau, vì vậy đó không phải là thử nghiệm tốt nhất.
Tôi tìm thấy một cơ sở dữ liệu đơn giản hơn nhiều so với nhiều tệp hình ảnh.
- 1. lưu trữ hình ảnh trong cơ sở dữ liệu hoặc trong một tệp hệ thống?
- 2. Tôi nên lưu trữ ảnh ở đâu? Hệ thống tệp hoặc cơ sở dữ liệu?
- 3. SQLite và lưu trữ hình ảnh
- 4. Giới hạn kích thước tệp cho SQLite trên hệ thống 32bit
- 5. Trường mô hình nhị phân Django hoặc BLOB
- 6. Mã hóa hệ thống tệp cho IOS?
- 7. Có thể khóa tệp sqlite trên hệ thống tệp NFS không?
- 8. Tôi có nên lưu trữ hình ảnh trong MongoDB hoặc trong Hệ thống tệp cục bộ (by Node.js)
- 9. Hệ thống tệp TreeView
- 10. Hình ảnh trong cơ sở dữ liệu vs hệ thống tệp
- 11. Sử dụng hình ảnh hệ thống trong C#
- 12. Tắt thao tác kéo hình ảnh hệ thống tệp vào trình duyệt.
- 13. Không có hệ thống tệp vĩnh viễn cho Heroku?
- 14. Hiển thị BLOB (hình ảnh) qua JSP
- 15. Danh sách các bảng hệ thống trong SQLite
- 16. Có hệ thống kiểm soát sửa đổi cho hình ảnh không?
- 17. Hệ thống kiểm soát phiên bản cho các tệp lớn?
- 18. Nhận hình ảnh Blob và chuyển đổi hình ảnh đó thành hình ảnh Bitmap
- 19. Hệ thống AVD Google Tv Emulator ảnh
- 20. Đặt thuộc tính hệ thống Java bằng tệp cấu hình
- 21. Cách di chuyển mô hình Django từ mysql sang sqlite (hoặc giữa hai hệ thống cơ sở dữ liệu)?
- 22. Làm thế nào để viết hoặc sửa đổi dữ liệu EXIF cho một hình ảnh hiện có trên hệ thống tập tin, mà không cần tải hình ảnh?
- 23. Node.js - Hệ thống tệp nhận loại tệp
- 24. Hệ thống tệp giả cho thử nghiệm đơn vị Perl
- 25. Hình ảnh hoặc tệp trong GNU Smalltalk?
- 26. Titanium Tạo tệp hình ảnh: file.write (blob) không tạo đúng tệp
- 27. Bắt tất cả hình nền hệ thống
- 28. lưu trữ hình ảnh được tải lên và các văn bản - hệ thống tập tin cơ sở dữ liệu vs blob
- 29. Long Blob innodb hoặc MyISAM
- 30. đọc hình ảnh BLOB từ cơ sở dữ liệu MySQL
Chỉ để làm rõ - đây là dành cho ứng dụng iPhone, đúng không? – AnonJr