Derby/JavaDB против SQLiteJDBC

Здесь я нашел много сравнений, но не этот; Итак, что лучше в каждом?

Ответы

Ответ 1

Там полное сравнение на сайт SQLite.

SQLite гораздо более ограничен, поскольку он поддерживает только небольшое подмножество SQL92, тогда как Derby (теперь JavaDB) имеет полную поддержку SQL92 и SQL99.

Ответ 2

Я выполняю сложный SQL, который имеет более 6000 строк 10000 раз на моем сервере Websphere. Общее время выполнения сети таково:

          Derby (In Memory)   Oracle(standard DB) SQLite (In Memory)  HSQLDb (In Memory)
          nano sec.  second    nano sec.  second  nano sec.  second   nano sec. second
1. try    58000000    0,058   6149976000   6,1    1141988000   1,14   999403000    1,00
2. try    78560000    0,078   5268477000   5,2    1182621000   1,18   1338705000   1,34
3. try    58849000    0,058   5200898000   5,2    1133003000   1,13   2239527000   2,24
4. try    60901000    0,06    5435216000   5,4    1205442000   1,21   1370711000   1,37
5. try    58798000    0,058   6501929000   6,5    1186734000   1,19   1001800000   1,00
6. try    62928000    0,062   5913053000   5,9    1224470000   1,22   1066736000   1,07
7. try    71171000    0,071   5111207000   5,1    1200769000   1,20   1304524000   1,30
8. try    66913000    0,066   5517989000   5,5    1173495000   1,17   1299230000   1,30
9. try    58777000    0,058   7209555000   7,2    1179013000   1,18   1031795000   1,03
10. try   75299000    0,075   5356514000   5,3    1182715000   1,18   1368461000   1,37
average   65019600    0,064   5766481400   5,7    1181025000   1,18   1302089200   1,30

Я, очевидно, сравниваю Derby, SQLite и HSQLDB. Oracle не находится в памяти db. Но я привел результат к таблице, потому что для отображения разности скоростей между a в памяти db и нормальным db.

PS: В SQLite и HSQLDB результаты нестабильны. Поэтому я выбрал 10 стабильных результатов в 100 попытках. Иногда HSQLDB работает быстрее, чем SQLite. Я думаю, что их производительность одинакова.

Ответ 3

Одна вещь, которую вы должны учитывать в SQLite, заключается в том, что, помимо поддержки только подмножества SQL92, к ней может обратиться только поток, создавший базу данных SQLite. Если вы можете жить с этим, то возьмите его за лучшую производительность.