首頁>技術>

概述

今天主要分享一下Mysql Schema優化方面的一些內容,僅供參考。

mysql schema優化建議

1、保證你的資料庫的整潔性。

2、歸檔老資料

3、在資料上加上索引

加完索引一定要看下執行計劃

4、不要過度使用索引,評估你的查詢

因為增刪改每次都需要維護索引。

5、壓縮 text 和 blob 資料型別

主要是為了節省空間,減少從磁碟讀資料

6、UTF 8 和 UTF16 比 latin1 慢

7、有節制的使用觸發器

儘可能放在業務層面實現。

8、保持資料最小量的冗餘 — 不要複製沒必要的資料

9、使用連結表,而不是擴充套件行

10、注意你的資料型別,儘可能的使用最小的

主要是為了節省空間,前面應該是有介紹了根據生產環境的資料去評估資料型別長度。

11、如果其他資料需要經常需要查詢,而 blob/text 不需要,則將 blob/text 資料域其他資料分離

12、經常檢查和優化表

命令是:optimize table XXX;

13、經常做重寫 InnoDB 表的優化

實際上就是alter table xx engine=innodb;

建議DDL操作用PT工具去做。

15、為不同的需求選擇不同的儲存引擎

比較推薦用innodb引擎

16、日誌表或審計表使用ARCHIVE儲存引擎 — 寫的效率更高

建議單獨規劃一個庫來做。

17、將 session 資料儲存在 memcache 中,而不是 MySQL 中

memcache 可以設定自動過期,防止MySQL對臨時資料高成本的讀寫操作

18、如果字串的長度是可變的,則使用VARCHAR代替CHAR

主要是節約空間,因為CHAR是固定長度,而VARCHAR不是(utf8 不受這個影響)

19、逐步對 schema 做修改

永遠保持對資料庫的敬畏,因為你不知道一個小的變化將會產生怎樣巨大的影響

20、在開發環境測試所有 schema 變動,而不是在生產環境的映象上去做

DDL操作一定要慎重

21、不要隨意改變你的配置檔案,這可能產生非常大的影響

修改配置檔案都需要在測試環境驗證後再上生產

22、有時候,少量的配置會更好

增加引數需要對該引數所帶來的後果有一定的了解。

23、質疑使用通用的MySQL配置檔案

配置最好都自定義。

  • BSA-TRITC(10mg/ml) TRITC-BSA 牛血清白蛋白改性標記羅丹明
  • LINUX VFS分析之SOCKFS分析一(sockfs註冊及相關結構體說明)