SQLite
 sql >> база данни >  >> RDS >> SQLite

Какви са режийните разходи при използването на AUTOINCREMENT за SQLite на Android?

Моята оценка, като отбелязвам, че не съм статистик, е, че режийните разходи са нещо като 8-12% по-бавно.

Получих резултатите с помощта на 3 структурно подобни и проститаблици с две колони TEXT, работещи 10 000 вмъквания за всяка таблица, повтаряйки това 5 пъти на 4 устройства.

Таблица 1 (Dflt колона) беше създаден само с двете колони TEXT (като по този начин се използва ROWID по подразбиране).

Таблица 2 (колона AI) беше създаден с помощта на _id INTEGER PRIMARY KEY AUTOINCREMENT в допълнение към двете колони TEXT.

Таблица 3 (Без колона AI) беше създаден с помощта на _id INTEGER PRIMARY KEY в допълнение към двете колони TEXT.

И така, Таблица 2 използва малко по-различен алгоритъм за избор на ROWID за вложки.

Четирите използвани устройства бяха:-

  • (1) Устройство, емулирано на Genymotion (Персонализиран таблет - 5.1.0 - API 22 - 1536x2048)

  • (2) 10-инчова таблетка Onix (AT101-1116)

  • (3) HTC 1 M8 (HTC_0PKV1)

  • (4) Таблет Lenevo A10-30 (Lenovo TB2-X30F)

    Резултатите, които получих бяха:-

Резултатите са по-благоприятни, когато всичко се изпълнява само в 1 транзакция (т.е. beginTransaction(); преди всякакви вмъквания, с setTransactionSuccessful(); и endTransaction(); след всички вмъквания (за всички таблици, т.е. целите 150 000 вмъквания), напр. :-

Сравнението на двете таблици подчертава ползите, които използването на транзакции може да има за ефективността.




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Проверете дали низът на колона в базата данни е подниз на заявка в sqlite

  2. Android SQLite LIKE escape заместващ знак

  3. присъединете се към колоната на две различни таблица sqlite3

  4. Извеждат резултати от SQLite заявка като списък, разделен с табулатори

  5. SQLite Създаване на таблица