程式設計師對SQL效能的追求

2021-10-05 21:07:46 字數 1946 閱讀 5579

1、查詢sql盡量不要使用select *,而是select具體字段,盡可能避免回表。

2、如果知道查詢結果只有一條或者只要一條記錄,建議用limit 1

3、應盡量避免在where子句中使用or來連線條件,因為會放棄索引

4、優化limit分頁,當偏移量特別大時,跳過偏移量,查詢效率大大提高。

5、優化你的like語句,把%放前面是不走索引的

6、使用where條件限定要查詢某個記錄的資料,避免返回多餘的行

7、盡量避免在索引列上使用mysql的內建函式

8、應盡量避免在where子句中對字段進行表示式操作,這將導致系統放棄使用索引而進行全表掃

9、inner join 、left join、right join,優先使用inner join,如果是left join,左邊表結果盡量小

10、應盡量避免在where子句中使用!=或<>操作符,否則將放棄索引進行全表掃瞄。

11、使用聯合索引時,注意索引列的順序,一般遵循最左匹配原則。

12、對查詢進行優化,應考慮在where及order by涉及的列上建立索引,盡量避免全表掃瞄。

13、如果插入資料過多,考慮批量插入。

14、在適當的時候,使用覆蓋索引。

15、慎用distinct關鍵字,字段很多的時候使用,會大大降低查詢效率。

16、刪除冗餘和重複索引

17、如果資料量較大,優化你的修改/刪除語句。

18、where子句中考慮使用預設值代替null。

19、不要有超過5個以上的表連線

20、exist&in的合理利用,選擇最外層迴圈小的

21、盡量用union all替換 union

22、索引不宜太多,一般5個以內。

23、盡量使用數字型字段,若只含數值資訊的字段盡量不要設計為字元型

24、索引不適合建在有大量重複資料的字段上,如性別這型別資料庫字

25、盡量避免向客戶端返回過多資料量。

26、當在sql語句中連線多個表時,請使用表的別名,並把別名字首於每一列上,這樣語義更加清晰。

27、盡可能使用varchar/nvarchar 代替 char/nchar。

28、為了提高group by 語句的效率,可以在執行到該語句前,把不需要的記錄過濾掉。

29、如果字段型別是字串,where時一定用引號括起來,否則索引失效

30、多多使用explain 分析你的sql語句

程式設計師追求的是什麼?

上週我收到三位halmstad大學學生的電子郵件,他們正在做乙個為期三月的專案,內容是關於程式設計師在工作中追求的是什麼,以及企業如何吸引有才華的程式設計師。下面是我對他們問題的答案,按重要程度排序。顯然人們會有不同的偏好,所以我很有興趣聽到你們贊同哪些,反對哪些,重要性的評判,以及你們認為遺漏了的...

對程式設計師的思考

程式設計師的工作不僅僅是編碼,他跟其他型別的工作都是一樣的 工作的實質是找到乙個能夠解決問題的方法,就算是最差的,只要解決問題了,就足夠了 高階的程式設計師之所以比較高階,區別是 1 他的經驗比較豐富,能夠根據經驗在最短時間內找到乙個比較好的方法 如果解決的方法有100種,前50種的,稍微差一點,但...

對程式設計師的建議

不知不覺做軟體已經做了十年,有成功的喜悅,也有失敗的痛苦,但總不敢稱自己是高手,因為和我心目中真正的高手們比起來,還差的太遠。世界上並沒有成為高手的捷徑,但一些基 本原則是可以遵循的。1.紮實的基礎。資料結構 離散數學 編譯原理,這些是所有電腦科學的基礎,如果 不掌握他們,很難寫出高水平的程式。據我...