MySQL數據庫開發的36 條軍規![SQL 效率/速度 提升/加快]

MySQL數據庫開發的36 條軍規![SQL 效率/速度 提升/加快]

MySQL數據庫開發的36 條軍規![SQL 效率/速度 提升/加快]


資料來源:https://mp.weixin.qq.com/s?__biz=MzAwMDg5MTAyMw==&mid=2247485640&idx=2&sn=a8ae6985879a689d8471d24732fe76b3&chksm=9ae34928ad94c03e2cd928b0690a1909a11e43ff0c2d057695fd8c2b7ede674c25aedc353fbb&scene=126&sessionid=1581985485&key=b3900b1fc989b015e8fd0503299c050999c337e87e2e4e5f22e8bc6d4b0d733e0e7841ef43b90f85691daf7632b60ca95a36d29db48389e59dab364658b52a3b937e009b2fbe358bb994639ed72d5023&ascene=1&uin=MjIwODk2NDgxNw%3D%3D&devicetype=Windows+10&version=62080079&lang=zh_TW&exportkey=AnyDDQZmAOfOuy7mhQwEzfg%3D&pass_ticket=roT%2BBX2IFGRvda5t4c9GQghCiTOl%2FL5GHZItVfWmLpams9po44SDab3je2xSzeQB


核心軍規

    ▲盡量不在數據庫做運算

    ▲控制單表數據量純INT不超過10M條,含Char不超過5M條

    ▲保持表身段苗條

    ▲平衡範式和冗餘

    ▲拒絕大SQL,複雜事務,大批量任務

字段類軍規

    ▲用好數值字段,盡量簡化字段位數

    ▲把字符轉化為數字

    ▲優先使用Enum或Set

    ▲避免使用Null字段

    ▲少用並拆封Text/Blob

    ▲不在數據庫中存圖片

索引類軍規

    ▲謹慎合理添加索引

    ▲字符字段必須建立前綴索引?

    ▲不在索引列做運算

    ▲自增列或全局ID做InnoDB主鍵

    ▲盡量不用外鍵

SQL類軍規

    ▲SQL盡可能簡單

    ▲保持事務連接短小

    ▲盡可能避免使用SP/Trigger/Function

    ▲盡量不用Select *

    ▲改寫Or為IN()

    ▲改寫Or為Union

    ▲避免負向查詢和%前綴模糊查詢

    ▲Count不要使用在可Null的字段上面

    ▲減少Count(*)

    ▲Limit高效分頁,SELECT * FROM message WHERE id > 9527 (or sub select) limit 10

    ▲使用Union ALL 而不用Union

    ▲分解鏈接,保證高並發

    ▲Group By 去除排序

    ▲同數據類型的列值比較

    ▲Load Data導入數據,比Insert快20倍

    ▲打散大批量更新,盡量凌晨操作

約定類軍規

    ▲隔離線上線下

    ▲禁止未經DBA認證的子查詢

    ▲永遠不在程序段顯式加鎖

    ▲表字符集統一使用UTF8MB4

發表迴響

你的電子郵件位址並不會被公開。 必要欄位標記為 *