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. 表中各个列不发生变化。
  • 相关阅读:
    hdu_5750_Dertouzos(线性筛)
    hdu_5748_Bellovin(LIS)
    Codeforces Round #364 (Div. 2) C.They Are Everywhere
    Codeforces Round #364 (Div. 2) D. As Fast As Possible
    [BZOJ 2456]Mode(神奇的抵销)
    [poj3046]Ant Counting(母函数)
    [poj1742]coin
    [poj3666]Making the Grade(DP/左偏树)
    【POJ各种模板汇总】(写在逆风省选前)(不断更新中)
    [USACO2004][poj1989]The Cow Lineup(乱搞)
  • 原文地址:https://www.cnblogs.com/slsectyoufromwrold/p/10773733.html
Copyright © 2011-2022 走看看