最近在公司優化一些介面和一些表,這次優化真的讓我感觸頗深,原來以為從索引層面可以解決,沒想到這些代碼寫的真的是為了完成任務不帶考慮一些性能的,
1、代碼影響性能的地方,一個介面了有好幾個回圈查詢,特別是大sql的回圈查詢,優化這的時候我也是很服寫這個的人,各種給你拖性能,真的只是為了快速寫業務而寫代碼,加了索引之后 分頁查詢100條資料竟然還需要5秒,把他的兩個地方的回圈查詢重復查詢給優化后,速度提升到了100ms,可見槽糕的代碼對速度有多影響,如果沒有這個意識,就多看看阿里手冊,
2、表設計的時候,就應該考慮到,哪些列應該加索引,怎么合理的設計索引,是應該加單個索引還是應該加聯合索引,然后要求組員按照能使用的索引的最佳方式使用索引,別等后期表大了速度慢了,然后再考慮索引,要是這樣工程量就很大了,
設計表的時候列盡量有默認值或者不為null,避免常用欄位加索引的麻煩
3、盡量使用到聯合索引,而不是分為多個索引,一個是多個索引占用的空間肯定多,而且容易出現索引合并,索引合并雖然是mysql的優化,但是并不是所有的索引合并都是好的優化,很可能出現負優化
4、主鍵使用uuid,這個怎么說呢,還是不建議用uuid作為主鍵,就比如我這次優化中,使用了三個uuid的欄位作為聯合索引,索引占據的空間比資料占據的空間還要的,但是沒有辦法,架構已經設計成這了,當然還有其它一些缺點,在這個就不提了,
5、其它的優化在這就不提了,盡量努力的做一個java開發工程師吧!
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/228062.html
標籤:其他
