Erlo

数据库设计-维护优化

2019-04-25 12:02:52 发布   157 浏览  
页面报错/反馈
收藏 点赞

数据库设计

维护优化

    • 数据库维护优化要做什么?
  1. 维护数据字典
    • 明确表以及表中每一个字段所代表的含义。
  2. 维护索引
    • 随着数据量和查询的不断变化,需要优化索引。
  3. 维护表结构
    • 随着需求的不断变化,需要对表进行扩充或裁剪
  4. 水平/垂直拆分表结构
    • 随着数据量的增大,达到表的存储瓶颈,使操作变慢,需要拆分表。
    • 如何维护数据字典?
  1.   使用第三方工具对数据字典进行维护
  2. 利用数据库本身的备注字段来对数据字典进行维护,后面直接导出数据字典即可。

如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;
    • 如何维护索引?
    • 如何选择合适的列建立索引?
      1. 出现在where, group by, order by从句后的列。
      2. 可选择性高的列要放在索引的前面
      3. 索引中不要包含太长的数据类型。
    • 索引要适量,不是越多越好,大量的索引会导致操作效率降低。
    • 定期维护索引碎片
    • 在SQL语句中不要强制使用索引关键字。
    • 如何维护表结构?
  1. MySQL5.5之前使用在线工具pt-online-schema-change调整表结构
  2. MySQL5.6自身支持在线表结构的变更。
  3. 同时对数据字典进行维护。
    • 数据库中适合的操作?
  1. 尽量使用批量操作,少用逐条操作。
  2. 尽量少用使用SELECT * 语句。
  3. 尽量少用用户自定义函数。
  4. 谨慎使用用数据库全文索引。
    • 表的垂直拆分:减小表的宽度。
  1. 将经常查询的列放在一起,不经常查询的列单独拆成一张附表。
  2. 表中数据量不发生变化。
    • 表的水平拆分:减小表的高度。
  1. 通过主键hash的方式将一张大表拆分成n个小表。
  2. 表中各个列不发生变化。
登录查看全部

参与评论

评论留言

还没有评论留言,赶紧来抢楼吧~~

手机查看

返回顶部

给这篇文章打个标签吧~

棒极了 糟糕透顶 好文章 PHP JAVA JS 小程序 Python SEO MySql 确认