测试环境:PostgreSQL测试用例:CREATETABLEa(aidserialPRIMARYKEY,namevarchar(20));CREATETABLEb(bidserialPRIMARYKEY,namevarchar(20));CREATETABLEab(abidserialPRIMARYKEY,aidserialREFERENCESa(aid),bidserialREFERENCESb(bid));CREATEVIEWv_abASSELECTa.nameAS"aname",b.nameAS"bname",ab.abidAS"abid"FROMa,b,abWHEREa.aid=ab.aidANDb.bid=ab.bid;CREATEFUNCTIONf_ab(int)RETURNSTABLE(anamevarchar,bnamevarchar)AS$$SELECTa.nameAS"aname",b.nameAS"bname"FROMa,b,abWHEREa.aid=ab.aidANDb.bid=ab.bidANDab.abid=$1$$LANGUAGESQL;INSERTINTOaVALUES(1,'a');INSERTINTObVALUES(2,'b');INSERTINTOabVALUES(12,1,2);这两篇文章把我搞糊涂了:慎用自定义函数和通过自定义函数提高服务器性能抱着"存在即合理"的想法,我想知道到底什么时候该使用自定义函数?另外,当数据量较大时,下面这两条语句执行效率上有区别吗?SELECTaname,bnameFROMv_abWHEREabid=12;SELECTaname,bnameFROMf_ab(12);
不负相思意
相关分类