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配置文件。