每一條都是來自一線的實戰經驗、每一條都是背後血淋淋的教訓,不要華麗,只要實用。
盡量不在資料庫做運算(比如md5/order by rand)
拒絕3b(big sql,big transaction,big batch)
控制單錶的資料量
將字元轉化為數字(比如用int儲存ip位址,而不是char(15))
避免實用null欄位(null很難進行查詢優化,而且索引需要浪費額外空間,含null的復合索引無效)
少用並且拆分text/blob
不在資料庫裡存放
謹慎合理新增索引(改善查詢,減慢更新,索引並不是越多越好,能不加的盡量別加)
字元字段盡量建字首索引
不要再索引列做運算(無法使用索引,導致全表掃瞄)
自增列或者全域性id做innobd主鍵
盡量不要使用外來鍵(額外開銷,可『到達』其他表,意味著鎖,高併發時容易死鎖。可以有程式保證約束)
sql語句盡可能的簡單
保持事務(連線)短小
盡量不用select *(會先去資料庫請求所有列,然後丟掉不需要列。只取需要的列)
or盡可能的改為in、union()
避免負向查詢和%字首模糊查詢(負向查詢==not、!=、<>、not in、not like,字首模糊會導致不能使用索引,全表掃瞄)
高效分頁(情況分為幾種,這裡不過多進行闡述)
使用union all 而union
group by去除排序
進行使用同資料型別的列值比較
使用laod data導資料
打散大批量更新
資料庫優化設計注意要點
在乙個專案實施初始,資料庫 的設計非常重要,很多時候,我們只關心和考慮到眼前的功能,而忽略了後續的可維護性和可拓展性,以及還有乙個在大資料時代會遇到的高併發問題。在設計表結構時要注意以下幾個要點 1.資料行的長度不要超過8020位元組,如果超過這個長度的話在物理頁中這條資料會占用兩行從而造成儲存碎片...
MySQL資料庫要點彙總
唯一鍵允許空值而主鍵不允許,並且主鍵作為每個元組的身份證 唯一鍵 新增約束為unique的字段 的設定 1 通過sql語句設定 2 視覺化介面通過新增索引方式設定 當插入行資料主鍵重複,則會報異常,不會覆蓋。要想出現主鍵重複覆蓋,可以使用replace語句代替insert。count 1 與coun...
JDBS鏈結到MySQL資料庫的使用要點
註冊 jdbc 驅動 class.forname com.mysql.jdbc.driver 開啟鏈結 system.out.println 連線資料庫.connection conn drivermanager.getconnection db url,user,pass 執行查詢 system....