आप MyISAM का उपयोग क्यों करना चाहेंगे ??? यह विदेशी कुंजी या लेनदेन का समर्थन नहीं करता है। और यह शायद ही कभी InnoDB से तेज़ होता है क्योंकि MyISAM के फ़ुल-टेबल लॉक के विपरीत InnoDB पंक्ति लॉक और MVCC का उपयोग करता है।
ऐसा कहकर, आप इसे काम पर ला सकते हैं। आप type
. के बाद से MySQL के नए संस्करण का उपयोग कर रहे होंगे विशेषता कुछ समय के लिए बहिष्कृत कर दी गई थी और अब समर्थित नहीं है - आपको ENGINE
. का उपयोग करना होगा बजाय। इसका समर्थन करने वाली कोई बोली नहीं है (ध्यान दें कि org.hibernate.dialect.MySQL5InnoDBDialect
InnoDB के लिए सही काम करता है) इसलिए आपको अपना खुद का बनाना होगा।
इस वर्ग को src/groovy या src/java में बनाएँ (पैकेज और/या वर्ग का नाम बदलें):
package com.mycompany.myapp
import org.hibernate.dialect.MySQLMyISAMDialect
class MySQL5MyISAMDialect extends MySQLMyISAMDialect {
String getTableTypeString() {
" ENGINE=MyISAM"
}
}
और इसे DataSource.groovy में संदर्भित करें जैसा आपने अपने प्रश्न में दिखाया था:
dialect = com.mycompany.myapp.MySQL5MyISAMDialect