1.1.6、分支判斷if…else的時候,最常符合的條件處理放在前面。
1.1.7、對象比較的時候常量放前面,養(yǎng)成好習慣,減少空指針的出現(xiàn)。
1.1.8、減少synchronized中等待處理的代碼,能放在外面就盡量放在外面。
1.1.9、下面到數(shù)據(jù)庫了,我覺得還是在這里說了好點,一般查詢比較慢,很有可能是沒有建索引或者索引沒用到,多去檢查一下。
1.1.10、兩個大表的關聯(lián)查詢,可以使用二次訪問數(shù)據(jù)庫替代,先查出A表的數(shù)據(jù),利用關聯(lián)字段再查B表的。不要一味想著一條sql搞定最好。
1.1.11、堅決避免,查全表數(shù)據(jù)或者數(shù)量大的數(shù)據(jù),返回list加載到內存中,一不小心查了100w數(shù)據(jù),又查得比較頻繁,內存的爆了。有這種風險的改成分頁查詢。
1.1.12、不要select *,按需取列。
1.1.13、多考慮避免事務里面有長連接或者長事務,如果大量這種情況出現(xiàn)占用數(shù)據(jù)連接,會影響性能。一些無必要的邏輯可以放到事務外執(zhí)行。
1.1.14、對字段的加減乘除處理放到sql,嚴格避免先get處理,然后運算在set到數(shù)據(jù)庫里面,并發(fā)情況非常容易導致失真。
1.1.15、方法里面代碼不要太長,注意封裝,命名語義化,代碼整潔。常掛嘴邊的,沒放心上,一如既往的給自己埋坑,舉個博主的例子,那會剛畢業(yè)也是沒放心上,最近把我們組長不寫代碼,一到代碼評審我就害怕,檢視到有問題的代碼,畢業(yè)生吧就說這代碼以前就是這樣寫的,問題最終肯定都落我身上,現(xiàn)在感覺代碼是自己的孩子,只能有空自己偷偷的優(yōu)化一下,怕出問題還得非常仔細。
(2)SQL規(guī)范與性能優(yōu)化
1.2.1、先提前聲明,博主工作用到是MySQL,可能有些場景只針對MySQL。說到SQL優(yōu)化,一些概念必須要理解,不然死記硬背一兩天就忘記了。特別是執(zhí)行計劃的概念。