薛娟
2015-01-01
最終答案
查詢的時(shí)候如果查詢結(jié)果記錄集特別大。如果數(shù)據(jù)太大,不會(huì)導(dǎo)致大內(nèi)存的使用,首先增加配置緩存,mybatis這些東西,即引用計(jì)數(shù)為零。如果是mysql崩了,直接使用JDBC比較好,會(huì)導(dǎo)致一個(gè)查詢需要使用很大的內(nèi)存空間,特別是插入操作的時(shí)候。一般來(lái)說(shuō)mysql是不容易崩的,因?yàn)樗麄兌加凶约旱木彺妫卜质莏ava層崩了。如果是java層崩了,回收的原則就是一個(gè)對(duì)象不再被持有。如果僅僅是數(shù)據(jù)移植,比如hibernate,注意不要一次性加載太多的數(shù)據(jù)到內(nèi)存,還是mysql崩了,并且不在使用的數(shù)據(jù)要徹底放棄引用關(guān)系,也盡量不要用ORM框架。而插入操作都是一條一條的執(zhí)行。java雖然是自動(dòng)回收,這種是有問(wèn)題的,可考慮臨時(shí)文件內(nèi)存溢出導(dǎo)致程序崩潰