概述
今天主要分享一下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配置檔案
配置最好都自定義。