SQLite
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> SQLite

Chi phí sử dụng AUTOINCREMENT cho SQLite trên Android là gì?

Ướ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();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.




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Gây ra bởi:android.database.sqlite.SQLiteException:không có bảng như vậy:(mã 1) Android

  2. Nhà điều hành

  3. Cố gắng mở lại sqlitedatabase đối tượng đã bị đóng

  4. Android Studio không kiểm tra / đánh dấu các truy vấn Kotlin Room DAO khi chuỗi chiếm nhiều hơn 1 hàng

  5. sqliteLog 14:không thể mở tệp tại dòng