1. 程式人生 > >java 最佳實踐

java 最佳實踐

ava char font 表數 對象比較 字符串類型 占用 read 大表

一: 不要直接new一個thread,應當使用線程池。使用線程池的時候應當對線程數量大小合理設置,一般最大不超過50個,當然還需要考慮你的IO和CPU,怎麽分析網上搜搜吧。

二:容器類變量,如果變化比較大且頻繁盡量定義的時候設置初始容量大小,減少擴容帶來的消耗。

三:分支判斷if…else的時候,最常符合的條件處理放在前面。

四:對象比較的時候常量放前面,養成好習慣,減少空指針的出現。

五:減少synchronized中等待處理的代碼,能放在外面就盡量放在外面。

六:兩個大表的關聯查詢,可以使用二次訪問數據庫替代,先查出A表的數據,利用關聯字段再查B表的。不要一味想著一條sql搞定最好。??

七:堅決避免,查全表數據或者數量大的數據,返回list加載到內存中,一不小心查了100w數據,又查得比較頻繁,內存的爆了。有這種風險的改成分頁查詢。

八:考慮避免事務裏面有長連接或者長事務,如果大量這種情況出現占用數據連接,會影響性能。一些無必要的邏輯可以放到事務外執行。

九:a 普通索引

  b 唯一性索引 用UNIQUE參數,主鍵。

  c 單列索引

  d 多列索引 只有查詢條件中使用了這些字段中第一個字段時,索引才會被使用

  e 全文索引 全文索引只能創建在CHAR、VARCHAR或TEXT類型的字段上。查詢數據量較大的字符串類型的字段時,使用全文索引可以提高查詢速度。

十:一般一張表索引不要超過5個,而且避免重復索引,而且也不是建了索引,根據索引字段條件查詢,索引就會起作用。

十一:索引失效的情況:

使用like關鍵字匹配字符串第一個為”%”的場景。

   訪問表上的數據行超出表總記錄數30%,變成全表掃描

   查詢條件使用函數在索引列上,或者對索引列進行運算

多列索引中,第一個索引列使用範圍查詢,只能用到部份或無法使用索引

   多列索引中,第一個查詢條件不是最左索引列

   

java 最佳實踐