Ước tính của tôi, lưu ý rằng tôi không phải là nhà thống kê, là chi phí chung là 8-12% chậm hơn.
Tôi đã nhận được kết quả bằng cách sử dụng 3 bảng tương tự và đơn giản về cấu trúc với hai cột TEXT, chạy 10.000 số lần chèn trên mỗi bảng, lặp lại điều này 5 lần trên 4 thiết bị.
Bảng 1 (cột Dflt) đã được tạo chỉ với hai Cột VĂN BẢN (do đó sử dụng ROWID mặc định).
Bảng 2 (cột AI) được tạo bằng cách sử dụng _id INTEGER PRIMARY KEY AUTOINCREMENT
ngoài hai cột TEXT.
Bảng 3 (Không có cột AI) được tạo bằng _id INTEGER PRIMARY KEY
ngoài hai cột TEXT.
Vì vậy, Bảng 2 sử dụng thuật toán chọn ROWID hơi khác cho các phụ trang.
Bốn thiết bị được sử dụng là:-
-
(1) Một thiết bị mô phỏng Genymotion (Máy tính bảng tùy chỉnh - 5.1.0 - API 22 - 1536x2048)
-
(2) Máy tính bảng Onix 10 "(AT101-1116)
-
(3) HTC 1 M8 (HTC_0PKV1)
-
(4) Máy tính bảng Lenevo A10-30 (Lenovo TB2-X30F)
Kết quả tôi thu được là:-
Kết quả thuận lợi hơn khi mọi thứ được chạy chỉ trong 1 giao dịch (tức là beginTransaction();
trước bất kỳ lần chèn nào, với setTransactionSuccessful();
và endTransaction();
sau tất cả các lần chèn (cho tất cả các bảng, tức là toàn bộ 150.000 lần chèn), ví dụ::-
So sánh giữa hai bảng, làm nổi bật những lợi ích mà việc sử dụng các giao dịch có thể có khi hoạt động.