Объектная БД против Классического MySQL
Мы находимся в процессе выбора нового дизайна для нашего приложения (включая изменение БД), и мы рассматривали объектные базы данных (в частности, db4o).
Мы создали эталонный тест и, что удивительно, пока что все тесты указывают на то, что реализация Hibernate + MySQL быстрее извлекается, чем объектная база данных.
Конечно, есть много переменных в зависимости от того, как тест был спроектирован и выполнен, набора данных теста и т. Д., Однако, если я правильно читаю нижеприведенные результаты:
http://www.jpab.org/Hibernate/MySQL/server/DataNucleus/DB4O/embedded.html
Это также показывает, что реализация MySQL будет лучше.
Нам хотелось бы знать, что может замедлить работу объектных баз данных в отличие от MySQL (скажем, плохой практики) и как можно их избежать. И если они действительно медленнее, то каковы преимущества такой БД (до сих пор мы в основном читали о скоростях чтения / записи объектных БД, которые выше, чем у SQL).
1 ответ
Не все объектные базы данных равны, некоторые быстрее, а некоторые намного медленнее.
Поскольку вы упомянули JPAB, вам также следует проверить другие страницы, например, http://www.jpab.org/Hibernate/MySQL/server/ObjectDB/ObjectDB/embedded.html
Но также учтите, что на странице, которую вы упомянули, показано, что комбинация DataNucleus с db4o чрезвычайно медленная. Он ничего не говорит о db4o без DataNucleus или DataNucleus без db4o, что может быть лучше. В любом случае, существуют другие объектные базы данных, в том числе Versant Object Database и наша собственная ObjectDB, которые работают намного быстрее.
Попробуйте создать тестовое приложение, в котором MySQL/Hibernate быстрее, чем Versant Object Database, ObjectStore или ObjectDB, и вы увидите, что это намного сложнее.