-
- 数据库维护优化要做什么?
- 维护数据字典
- 明确表以及表中每一个字段所代表的含义。
- 维护索引
- 随着数据量和查询的不断变化,需要优化索引。
- 维护表结构
- 随着需求的不断变化,需要对表进行扩充或裁剪
- 水平/垂直拆分表结构
- 随着数据量的增大,达到表的存储瓶颈,使操作变慢,需要拆分表。
-
- 如何维护数据字典?
- 使用第三方工具对数据字典进行维护
- 利用数据库本身的备注字段来对数据字典进行维护,后面直接导出数据字典即可。
如MySQL:
CREATE TABLE `mmall_user` ( `id` int(11) NOT NULL AUTO_INCREMENT COMMENT '用户表id', `username` varchar(50) NOT NULL COMMENT '用户名', `password` varchar(50) NOT NULL COMMENT '用户密码,MD5加密', `role` int(4) NOT NULL COMMENT '角色0-管理员,1-普通用户', `create_time` datetime NOT NULL COMMENT '创建时间', `update_time` datetime NOT NULL COMMENT '最后一次更新时间', PRIMARY KEY (`id`), ) ENGINE=InnoDB AUTO_INCREMENT=22 DEFAULT CHARSET=utf8;
-
- 如何维护索引?
- 如何选择合适的列建立索引?
- 出现在where, group by, order by从句后的列。
- 可选择性高的列要放在索引的前面
- 索引中不要包含太长的数据类型。
- 索引要适量,不是越多越好,大量的索引会导致操作效率降低。
- 定期维护索引碎片
- 在SQL语句中不要强制使用索引关键字。
- 如何维护表结构?
- MySQL5.5之前使用在线工具pt-online-schema-change调整表结构
- MySQL5.6自身支持在线表结构的变更。
- 同时对数据字典进行维护。
-
- 数据库中适合的操作?
- 尽量使用批量操作,少用逐条操作。
- 尽量少用使用SELECT * 语句。
- 尽量少用用户自定义函数。
- 谨慎使用用数据库全文索引。
-
- 表的垂直拆分:减小表的宽度。
- 将经常查询的列放在一起,不经常查询的列单独拆成一张附表。
- 表中数据量不发生变化。
-
- 表的水平拆分:减小表的高度。
- 通过主键hash的方式将一张大表拆分成n个小表。
- 表中各个列不发生变化。