簡體   English   中英

如何在Hibernate中使用MySql內存存儲引擎?

[英]How to use MySql Memory Storage Engine in Hibernate?

有什么辦法告訴Hibernate使用MySql內存存儲引擎嗎?
謝謝。
編輯:我發現內存存儲引擎不支持常規存儲引擎(如InnoDB等)的所有功能。因此似乎沒有任何選擇是合乎邏輯的。

應該有一個屬性文件,您可以在其中將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使用極其快速的表鎖定,該鎖定允許多個讀取器或單個寫入器。 當您在單個表上有穩定的混合更新流和緩慢的選擇流時,將出現此存儲引擎的最大問題。 如果某些表存在此問題,則可以為它們使用另一個存儲引擎。

為什么要使用內存存儲?

我的個人用例場景就是測試。

考慮使用h2,hsql或derby。 AFAIK它們都提供內存存儲。 而且,如果您始終使用Hibernate,則在后台運行哪個數據庫也不會造成任何影響-至少從開發角度而言不會如此。

創建表時,將聲明mySQL使用的存儲引擎。 CREATE TABLE DDL的末尾使用限定符ENGINE=MEMORY 然后像使用其他任何表一樣使用它。

但是,當然,請記住,如果您的mySQL服務器由於任何原因彈跳,則返回時該MEMORY表中的所有行都將消失。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM