OpenSCADAWiki: Works/Tests/DB
 

Тестирование и измерение производительности доступных БД


Замер производительности БД выполнялся тестом БД модуля системных тестов, путём выполнения операций над записями структурой: <name char(20), descr char(50), val double(10.2), id int(7), stat bool> и измерения времени операции в секундах.

Contents

Тестирование на корректность обработки и уведомления проблем доступа к БД

Тест SQLite MySQL PostgreSQL FireBird DBF Cfg
Запись в RO, уведомление + + + + + +
Запись группы в RO, уведомление + + + + + +
Запись в RW + + + + + +
Запись, нет связи, уведомление NA + + + NA NA
Чтение без записи, уведомление + + + + + +
Чтение c записью + + + + + +
Чтение, нет связи, уведомление NA + + + NA NA
Удаление без записи + + + + + +
Удаление RO без записи, нет уведомления + + + + + +
Удаление RO, уведомление + + + + + +
Удаление RW + + + + + +
Удаление, нет связи, уведомление NA + + + NA NA
Стандартные тесты DB + + + + + NA
Архивирование сообщений и значений, 24 часа

Производительность хранилищ

SQLite

Operation Nokia N800, SD 4GClass6
Nokia N900
RPi2 Debian8 Class10 UHS1;
RPi3 Debian8 Class10 UHS1;
OrangePiZero Debian8 Class2
AMD Turion L625 1.6, 2G [HDD; SSD]
Intel(R) Core(TM) i3 CPU 1.33GHz, 3G [HDD; SSD];
Intel(R) Core(TM) i7 CPU 2.6GHz, 12G FastSSD
Creation of the 1000 records (sec.): 3.3; 1.96 0.78; 0.43; 0.48 [0.49; 0.2]; [0.39; 0.22]; 0.056
Updating of the 1000 records (sec.): 3.2; 2.47 0.7; 0.41; 0.45 [0.48; 0.19]; [0.40; 0.21]; 0.053
Getting of the 1000 records (sec.): 2.6; 1.81 0.69; 0.38; 0.45 [0.36; 0.19]; [0.31; 0.21]; 0.051
Seeking of the 1000 records (sec.): 3.1; 1.48 0.76; 0.42; 0.51 [-; 0.22]; [0.21; 0.22]; 0.052
Seeking in preload of the 1000 records (sec.): 0.53; 0.29 0.13; 0.071; 0.088 [-; 0.028]; [0.027; 0.028]; 0.0073
Deleting of the 1000 record (sec.): 1.18; 0.43 0.20; 0.10; 0.13 [0.08; 0.058]; [0.067; 0.069]; 0.012


MySQL

Operation Nokia N800, MySQL 5.0.89 MyISAM WLAN AMD Turion L625 1.6, 2G, MySQL
[5.0.51 MyISAM 100Base-TX; WLAN];
[5.1.62 MyISAM local; 100Base-TX];
[5.5.41 MyISAM local; InnoDB; MyISAM 100Base-TX; InnoDB]
Intel(R) Core(TM) i3 CPU 1.33GHz, 3G, HDD
[5.5.49 MyISAM 100Base-TX; InnoDB]
Creation of the 1000 records (sec.): 4.53 [1.1; 3.6]; [0.7; 1.00]; [0.57; 0.73; 2.1; 2.0] [1.68; 1.56]
Updating of the 1000 records (sec.): 4.2 [1.12; 3.8]; [0.7; 1.07]; [0.6; 0.66; 2.0; 2.0] [1.75; 1.87]
Getting of the 1000 records (sec.): 2.88 [0.8; 2.1]; [0.38; 0.69]; [0.38; 0.4; 1.3; 1.4] [1.056; 1.12]
Seeking of the 1000 records (sec.): - - [1.89; 2.23]
Seeking in preload of the 1000 records (sec.): - - [0.03; 0.03]
Deleting of the 1000 record (sec.): 1.47 [0.43; 1.7]; [0.27; 0.42]; [0.23; 0.2; 0.79; 0.6] [0.66; 0.67]


PostgreSQL

Operation Nokia N800, PostgreSQL 8.3 (remote) AMD Turion L625 1.6, 2G, PostgreSQL 9.1 [local; 100Base-TX] Intel(R) Core(TM) i3 CPU 1.33GHz, 3G, HDD [100Base-TX]
Creation of the 1000 records (sec.): 5 1.08; 1.6; 3.8 2.07
Updating of the 1000 records (sec.): 4.8 1.12; 1.6; 3.9 2.35
Getting of the 1000 records (sec.): 2.96 0.64; 1.2; 2.1 1.26
Seeking of the 1000 records (sec.): - - 7.9
Seeking in preload of the 1000 records (sec.): - - 0.038
Deleting of the 1000 record (sec.): 1.73 0.39; 0.6; 1.6 0.94


FireBird

Operation AMD Turion L625 1.6, 2G, FireBird [2.1.3 Local SuperServer; 100Base-TX; 2.5.2 100Base-TX SuperServer ForcedWrites=Off; ForcedWrites=On] Intel(R) Core(TM) i3 CPU 1.33GHz, 3G, HDD [2.5.2 100Base-TX SuperServer ForcedWrites=Off; ForcedWrites=On]
Creation of the 1000 records (sec.): 0.93; 1.15; 4.4; 5.2 3.68; 4.67
Updating of the 1000 records (sec.): 2.74; 2.94; 5.1; 5.2 3.88; 4.54
Getting of the 1000 records (sec.): 1.64; 2.22; 5.0; 27.8 3.69; 28.8
Seeking of the 1000 records (sec.): - 5.36; 32
Seeking in preload of the 1000 records (sec.): - 0.045; 0.065
Deleting of the 1000 record (sec.): 0.65; 1.04; 2.0; 2.4 1.69; 1.66


DBF

Operation K8-3000+,256M,120G Nokia N800, SD 2G Intel(R) Core(TM) i3 CPU 1.33GHz, 3G, HDD
Creation of the 1000 records (sec.): 1.07 37 0.382
Updating of the 1000 records (sec.): 1.6 33.8 0.368
Getting of the 1000 records (sec.): 1.0 34.32 0.362
Seeking of the 1000 records (sec.): - - 0.064
Seeking in preload of the 1000 records (sec.): - - 0.064
Deleting of the 1000 record (sec.): 0.95 37 0.371