MySql Schema 优化
2015-08-18 16:20
218 查看
MySQL Schema 优化:
1、保证你的数据库的整洁性。
2、归档老数据 — 删除查询中检索或返回的多余的行
3、在数据上加上索引。
4、不要过度使用索引,评估你的查询。
5、压缩 text 和 blob 数据类型 — 为了节省空间,减少从磁盘读数据。
6、UTF 8 和 UTF16 比 latin1 慢。
7、有节制的使用触发器。
8、保持数据最小量的冗余 — 不要复制没必要的数据.
9、使用链接表,而不是扩展行。
10、注意你的数据类型,尽可能的使用最小的。
11、如果其他数据需要经常需要查询,而 blob/text 不需要,则将 blob/text 数据域其他数据分离。
12、经常检查和优化表。
13、经常做重写 InnoDB 表的优化。
14、有时,增加列时,先删除索引,之后在加上索引会更快。
15、为不同的需求选择不同的存储引擎。
16、日志表或审计表使用ARCHIVE存储引擎 — 写的效率更高。
17、将 session 数据存储在 memcache 中,而不是 MySQL 中 — memcache 可以设置自动过期,防止MySQL对临时数据高成本的读写操作。
18、如果字符串的长度是可变的,则使用VARCHAR代替CHAR — 节约空间,因为CHAR是固定长度,而VARCHAR不是(utf8 不受这个影响)。
19、逐步对 schema 做修改 — 一个小的变化将产生的巨大的影响。
20、在开发环境测试所有 schema 变动,而不是在生产环境的镜像上去做。
21、不要随意改变你的配置文件,这可能产生非常大的影响。
22、有时候,少量的配置会更好。
23、质疑使用通用的MySQL配置文件。
1、保证你的数据库的整洁性。
2、归档老数据 — 删除查询中检索或返回的多余的行
3、在数据上加上索引。
4、不要过度使用索引,评估你的查询。
5、压缩 text 和 blob 数据类型 — 为了节省空间,减少从磁盘读数据。
6、UTF 8 和 UTF16 比 latin1 慢。
7、有节制的使用触发器。
8、保持数据最小量的冗余 — 不要复制没必要的数据.
9、使用链接表,而不是扩展行。
10、注意你的数据类型,尽可能的使用最小的。
11、如果其他数据需要经常需要查询,而 blob/text 不需要,则将 blob/text 数据域其他数据分离。
12、经常检查和优化表。
13、经常做重写 InnoDB 表的优化。
14、有时,增加列时,先删除索引,之后在加上索引会更快。
15、为不同的需求选择不同的存储引擎。
16、日志表或审计表使用ARCHIVE存储引擎 — 写的效率更高。
17、将 session 数据存储在 memcache 中,而不是 MySQL 中 — memcache 可以设置自动过期,防止MySQL对临时数据高成本的读写操作。
18、如果字符串的长度是可变的,则使用VARCHAR代替CHAR — 节约空间,因为CHAR是固定长度,而VARCHAR不是(utf8 不受这个影响)。
19、逐步对 schema 做修改 — 一个小的变化将产生的巨大的影响。
20、在开发环境测试所有 schema 变动,而不是在生产环境的镜像上去做。
21、不要随意改变你的配置文件,这可能产生非常大的影响。
22、有时候,少量的配置会更好。
23、质疑使用通用的MySQL配置文件。
相关文章推荐
- MySql配置优化
- mysql表结构或者数据复制
- MySQL 数据处理备忘
- MySQL数据迁移实战
- Mysql-cluster集群
- Mysql分表分区
- MySql分析算法作品索引(马上,只是说说而已B-tree)
- win7安装mysql
- VC2013连接MySql
- mysql 查询表字段名称 语句
- mysql5.6删除的功能
- mysql查询结果合并
- windows下安装mysql
- Navicat For Mysql快捷键
- MySQL存储过程
- mysql中 DateDiff(date1, date2)函数的第一个参数需比第二个参数晚
- Mysql 读写分离 delay影响
- [转]MySQL 性能调优的10个方法
- MySQL Cluster数据分布和分区
- mysql文档摘要续3