中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

有哪些寫SQL的好建議

發布時間:2021-10-22 13:58:14 來源:億速云 閱讀:168 作者:iii 欄目:數據庫

本篇內容主要講解“有哪些寫SQL的好建議”,感興趣的朋友不妨來看看。本文介紹的方法操作簡單快捷,實用性強。下面就讓小編來帶大家學習“有哪些寫SQL的好建議”吧!

1. 在執行刪除或者更新語句,盡量加上limit,它是SQL后悔藥加了limit 主要有這些好處:

  • 降低寫錯SQL的代價,  如果不加limit,執行的時候一不小心手抖或卡機,數據大概就全被刪掉了,刪錯了怎么辦?加了limit  200,一切就不同了,可以通過binlog日志快速恢復。SQL效率可能會更高,你在SQL行中,加了limit 1,如果第一條就命中目標return,  沒有limit的話,還會繼續執行掃描表。

  • 避免了長事務,delete執行時,如果age加了索引,MySQL會將所有相關的行加寫鎖和間隙鎖,所有執行相關行會被鎖住,如果刪除數量大,直接無法使用相關業務。當你刪除數據量很大時,加  limit限制記錄數,就不容易把cpu打滿。

2. 變更SQL操作先在測試環境測試,可以避免有語法錯誤就放到生產上。變更SQL操作需要寫明詳細操作步驟,特別是有依賴關系的時候,比如:先修改表結構再增加對應的數據。

更換Sql操作有回滾方案,并在上生產前,review對應變更SQL。

3. where后面的字段,留意其數據類型的隱式轉換,這樣可以優化性能。因為沒加單引號時,是字符串和數字的比較,類型不匹配,MySQL就會做隱式的類型轉換,把它們轉換為浮點數再做比較,最后導致索引失效。

4. 在操作生產的數據時,修改或者刪除SQL,先寫WHERE查一下,確認后再補充 delete 或 update。

5. 減少不必要的字段返回,可以節省資源、減少網絡開銷,用到覆蓋索引,減少回表,提高查詢效率。比如運用select <具體字段> 代替  select * 。

6. 數據庫和表的字符集盡量統一使用UTF8編碼,可以避免亂碼問題以及不同字符集比較轉換,導致的索引失效問題。若想存儲表情,選擇utf8mb4來進行存儲,請注意它與utf-8的區別。

7. 盡量使用varchar代替 char。因為首先變長字段存儲空間小,可以節省存儲空間。

8. 慎用distinct關鍵字,它一般用來過濾重復記錄,以返回不重復的記錄。可以在查詢一個字段或者很少字段的情況下使用時,能帶來優化效果。但如果在字段很多的時候使用,會降低查詢效率。

9. SQL命令行修改數據,養成begin + commit 事務的習慣,這也是一顆SQL后悔藥。

10. 索引命名要規范,主鍵索引名為 pk_ 字段名;唯一索引名為 uk _字段名 ;普通索引名則為 idx _字段名。比如pk_即primary  key;uk_即unique key;idx_即index 的簡稱。

11. where從句中不對列進行函數轉換和表達式計算,因為索引列上使用mysql的內置函數,索引失效。

12. SQL語句中不IN包含的值不能太多,如果數值過多,產生的消耗也就較大。MySQL對于IN做了相應的優化,即將IN中的常量全部存儲在一個數組里面,而且這個數組是排好序的。能用between就不要用in了,或者使用連接來替換。

13. 在適當的時候,使用覆蓋索引。它能夠讓你的SQL語句不需要回表,僅訪問索引就能得到全部需要的數據,大大提升了查詢效率。

到此,相信大家對“有哪些寫SQL的好建議”有了更深的了解,不妨來實際操作一番吧!這里是億速云網站,更多相關內容可以進入相關頻道進行查詢,關注我們,繼續學習!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

sql
AI

辽阳县| 扶沟县| 连山| 庆安县| 喀喇沁旗| 永顺县| 双桥区| 南岸区| 金坛市| 东乌| 洱源县| 江阴市| 洪雅县| 北碚区| 文山县| 通渭县| 资溪县| 丰宁| 昌江| 琼海市| 双峰县| 玉屏| 凭祥市| 中江县| 宝丰县| 延安市| 吉首市| 沈阳市| 阿坝| 蒙山县| 仪征市| 合水县| 精河县| 麻栗坡县| 双鸭山市| 且末县| 宿州市| 曲水县| 阜阳市| 都昌县| 西和县|