MySQL Schema 優化:數據庫
一、保證你的數據庫的整潔性。session
二、歸檔老數據 — 刪除查詢中檢索或返回的多餘的行測試
三、在數據上加上索引。優化
四、不要過分使用索引,評估你的查詢。日誌
五、壓縮 text 和 blob 數據類型 — 爲了節省空間,減小從磁盤讀數據。索引
六、UTF 8 和 UTF16 比 latin1 慢。開發
七、有節制的使用觸發器。字符串
八、保持數據最小量的冗餘 — 不要複製不必的數據.io
九、使用連接表,而不是擴展行。效率
十、注意你的數據類型,儘量的使用最小的。
十一、若是其餘數據須要常常須要查詢,而 blob/text 不須要,則將 blob/text 數據域其餘數據分離。
十二、常常檢查和優化表。
1三、常常作重寫 InnoDB 表的優化。
1四、有時,增長列時,先刪除索引,以後在加上索引會更快。
1五、爲不一樣的需求選擇不一樣的存儲引擎。
1六、日誌表或審計表使用ARCHIVE存儲引擎 — 寫的效率更高。
1七、將 session 數據存儲在 memcache 中,而不是 MySQL 中 — memcache 能夠設置自動過時,防止MySQL對臨時數據高成本的讀寫操做。
1八、若是字符串的長度是可變的,則使用VARCHAR代替CHAR — 節約空間,由於CHAR是固定長度,而VARCHAR不是(utf8 不受這個影響)。
1九、逐步對 schema 作修改 — 一個小的變化將產生的巨大的影響。
20、在開發環境測試全部 schema 變更,而不是在生產環境的鏡像上去作。
2一、不要隨意改變你的配置文件,這可能產生很是大的影響。
2二、有時候,少許的配置會更好。
2三、質疑使用通用的MySQL配置文件。