zoukankan      html  css  js  c++  java
  • 数据库设计

      • 数据库维护优化要做什么?
    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. 表中各个列不发生变化。
  • 相关阅读:
    mysql查询没有主键的表
    pgsql某一个库所有表导出前1000行,CSV格式
    Redis密码设置
    MYSQL PXC
    PXC Percona 5.7 遇到的问题
    ERROR You have enabled the binary log, but you haven't provided the mandatory server-id
    关于js中的比较时遇到的坑
    git 第一次上传本地代码到远程仓库,解决 ! [rejected] master -> master (non-fast-forward)错误
    用css3实现图片的放大缩小
    关于前端使用JavaScript获取base64图片大小的方法
  • 原文地址:https://www.cnblogs.com/slsectyoufromwrold/p/10773733.html
Copyright © 2011-2022 走看看