Как использовать MySql Memory Storage Engine в Hibernate? - PullRequest
1 голос
/ 15 сентября 2011

Есть ли способ сказать Hibernate использовать MySql Memory Storage Engine?
Спасибо.
Редактировать: Я обнаружил, что Memory Storage Engine не поддерживает все функции обычного Store Store, такого как InnoDB и т. Д. Поэтому может показаться логичным, что для него нет опции.

Ответы [ 3 ]

1 голос
/ 15 сентября 2011

Должен быть файл свойств, в котором вы можете поместить свой URL в MySQL

#hibernate.dialect org.hibernate.dialect.MySQLDialect
#hibernate.dialect org.hibernate.dialect.MySQLInnoDBDialect
#hibernate.dialect org.hibernate.dialect.MySQLMyISAMDialect
#hibernate.connection.driver_class com.mysql.jdbc.Driver
#hibernate.connection.url jdbc:mysql:///mysqlURL
#hibernate.connection.username
#hibernate.connection.password

Но помните об этом

При использовании механизма хранения MyISAM MySQL использует чрезвычайнобыстрая блокировка таблицы, которая позволяет нескольким читателям или одному писателю.Самая большая проблема с этим механизмом хранения возникает, когда у вас постоянный поток смешанных обновлений и медленный выбор в одной таблице.Если это проблема для определенных таблиц, вы можете использовать другой механизм хранения для них.

0 голосов
/ 23 февраля 2014

Зачем вам нужна память в памяти?

Мой личный сценарий использования такой установки - тестирование.

Подумайте об использовании h2, hsql или derby.AFAIK они все обеспечивают хранение в памяти.И если вы постоянно используете Hibernate, не должно иметь значения, какая база данных работает в фоновом режиме - по крайней мере, с точки зрения разработки.

0 голосов
/ 15 сентября 2011

Механизм хранения, используемый mySQL, объявляется при создании ваших таблиц. Используйте квалификатор ENGINE=MEMORY в конце вашего CREATE TABLE DDL. Затем используйте его как любой другой стол.

Но, конечно, помните, что если ваш сервер mySQL по какой-либо причине отскакивает, все строки будут удалены из этой таблицы MEMORY, когда она вернется.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...