grails批量導入數據

一、給目的數據庫表建索引

此方法有一點用,在一次數據量不大的情況下效果很好,隨着數據量的增大速度急劇下降。

二、隨時清理緩存

如下代碼所示在服務類中定時情況緩存,效果非常好

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


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章