您當前位置:
首頁 >
互聯網 > 互聯網項目開發效率與系統性能的一個取舍問題
互聯網項目開發效率與系統性能的一個取舍問題
來源:程序員人生 發布時間:2014-11-04 08:16:26 閱讀次數:2113次
問題起源 今天,leader看了我寫的代碼,提了1個建議。我在寫p2p業務系統的時候,http://www.vxbq.cn/db/底層使用了“關聯查詢,left-join”,leader覺得這樣性能不好。他建議,不使用關聯查詢,每次都是單表查詢,如果需要查詢關聯數據,增加1次查詢,然后再把兩次乃至屢次的數據合并。即通進程序而不是sql,合并數據。
他的思考邏輯:
他之前在淘寶工作過,web系統對性能要求比較高。Web前端等程序可使用散布式,量再大,多臺利用http://www.vxbq.cn/server/就能夠應付了。而http://www.vxbq.cn/db/,最多也就是主從結構,很容易成為瓶頸。使用關聯查詢,比較耗費性能,并且訪問量大的時候,不夠穩定。
他的觀點:http://www.vxbq.cn/db/的核心作用是,提供存儲和查詢服務,left join等高級查詢不是http://www.vxbq.cn/db/的強項。如果只是用單表,每次都很快,而且有保障,出錯的可能性比關聯查詢小很多,而且單表查詢容易做緩存,建索引。
我的思考邏輯:
我寫的程序基本不斟酌性能問題,由于我還沒有遇到過性能瓶頸問題,多是我參與的大多數小訪問量的業務系統,而非海量普通消費者用戶的大型http://www.vxbq.cn/Internet/系統。
寫程序,最基本的原則是,保證按時交付、質量過關、可讀性強、容易保護。
如果自己去合并屢次查詢的數據,要多寫很多Java代碼,明顯會增加工作量。
取舍
我們正在開發的是p2p系統,如果客戶買我們的系統,運營得比較好的話,量也會比較大。為了應對潛伏流量大的問題,開發回是需要注意性能。所以,我需要重構代碼。這個合并數據的邏輯不難,用node.js寫程序的時候,寫過。把公共的合并邏輯或方法,總結下來或寫成工具方法,花的時間也能夠少點。
1點實際經驗
從過去的開發經驗來看,我也非常只想寫“單表查詢的sql語句” ,非常容易寫。更關鍵的是,針對1張表的CRUD操作,用Hibernate和Mybatis等http://www.vxbq.cn/db/框架,可以很容易實現。多張表的CRUD API很難寫。
擴大話題
象性能與效力的取舍等問題 ,在我看來都是1個“標準”或“最好實踐”的問題。
我想把這5年多學習Web開發的經驗,總結下,比如前端用哪些技術、后端Java用哪些框架、管理代碼、打包部署 、備份、網站監測。
為何想這么做呢?重復的問題,標準話以后,工作會輕松許多。
另外,雖然作為1個技術人員,我還是想通過寫程序弄點外快的。 如果常見的功能,我都可以很快地實現,那末在相同的條件下,我可以實現更多的系統,只要有1個可以賣出去,比如5萬1套,也是非常多的。
這些都是我的1點想法,希望有1天可以實現,哪怕只是1小部份。
小雷FansUnion-博學的http://www.vxbq.cn/Internet/技術工作者
2014年10月30日
湖北武漢
生活不易,碼農辛苦
如果您覺得本網站對您的學習有所幫助,可以手機掃描二維碼進行捐贈
------分隔線----------------------------
------分隔線----------------------------