Tôi muốn chèn hàng loạt khoảng 700 bản ghi vào cơ sở dữ liệu Android trong lần nâng cấp tiếp theo của mình. Cách hiệu quả nhất để làm điều này là gì? Từ các bài viết khác nhau, tôi biết rằng nếu tôi sử dụng các câu lệnh Insert
, tôi nên bọc chúng trong một giao dịch. Ngoài ra còn có một số post về cách sử dụng cơ sở dữ liệu của riêng bạn, nhưng tôi cần dữ liệu này để chuyển sang cơ sở dữ liệu Android chuẩn của ứng dụng. Lưu ý rằng điều này sẽ chỉ được thực hiện một lần cho mỗi thiết bị.Chèn số lượng lớn trên thiết bị Android
Một số ý tưởng:
Đặt một loạt các câu lệnh SQL trong một tập tin, đọc chúng trong một dòng tại một thời điểm, và exec SQL.
Đặt dữ liệu vào tệp CSV hoặc JSON hoặc YAML hoặc XML hoặc bất kỳ thứ gì. Đọc một dòng tại một thời điểm và làm
db.insert()
.Tìm hiểu cách nhập và nhập một lần toàn bộ tệp.
Tạo cơ sở dữ liệu sqlite chứa tất cả các bản ghi, sao chép vào thiết bị Android và bằng cách nào đó hợp nhất hai cơ sở dữ liệu.
[EDIT] Đặt tất cả các câu lệnh SQL trong một tệp duy nhất trong res/values dưới dạng một chuỗi lớn. Sau đó đọc từng dòng một và thực hiện câu lệnh SQL.
Cách tốt nhất là gì? Có cách nào khác để tải dữ liệu không? Có 3 và 4 thậm chí có thể không?
Cảm ơn! Tối ưu hóa này đã tăng nhập một loạt các bản ghi lên gấp 2 lần. –
Tôi đã đọc blog và nhận xét. Cả hai cung cấp chi tiết đủ chèn tất cả dữ liệu của tôi trong vòng một vài giây. Nhiều lần tốt hơn vài phút. – Knossos
Bây giờ 'InsertHelper' không được dùng nữa, chúng ta buộc phải sử dụng' SQLiteStatement'? –