一、給目的數據庫表建索引
此方法有一點用,在一次數據量不大的情況下效果很好,隨着數據量的增大速度急劇下降。
二、隨時清理緩存
如下代碼所示在服務類中定時情況緩存,效果非常好
class BookService {
def sessionFactory
def propertyInstanceMap = org.codehaus.groovy.grails.plugins.DomainClassGrailsPlugin.PROPERTY_INSTANCE_MAP
def importBooksInLibrary(library) {
library.eachWithIndex { Map bookValueMap, index ->
updateOrInsertBook(bookValueMap)
if (index % 100 == 0) cleanUpGorm()
}
}
def cleanUpGorm() {
def session = sessionFactory.currentSession
session.flush()
session.clear()
propertyInstanceMap.get().clear()
}
def updateOrInsertBook(Map bookValueMap) {
//導入數據代碼
}
}
引用Batch Import Performance With Grails and MySQL.note