SQL数据库设计之维护优化(三)

前面分别介绍了数据库设计的逻辑设计和物理设计阶段,下面我们来了解下数据库建表后的优化问题.
前面两篇文章的链接
SQL数据库设计(一)—需求分析与逻辑设计
SQL数据库设计(二) – 物理设计

维护优化

  • 对新的需进行建表
  • 索引优化
  • 大表拆分

需要做的工作

1. 维护数据字典
  • 使用第三方工具对数据库字典进行维护
  • 利用数据库本身的备注字段来维护数据字典
-- 使用备注字段维护数据字典
create table test11
(
       id integer auto_increment not null primary key comment '主键,自增ID',
       name varchar(10) not NULL comment '客户姓名'
) comment '客户表';
  • 导出数据字典
    数据库的原生信息会记录到information_schema的两张表中
-- 导出数据字典

select TABLE_COMMENT from information_schema.TABLES
where TABLE_NAME = 'test11';

/*
      TABLE_COMMENT
      客户表
*/



-- 查询所有备注
select a.TABLE_NAME,a.TABLE_COMMENT,b.COLUMN_NAME,b.COLUMN_TYPE,b.COLUMN_COMMENT
from information_schema.TABLES a inner join information_schema.COLUMNS b
on a.TABLE_NAME = b.TABLE_NAME
where a.TABLE_NAME = 'test11';

/*
TABLE_NAME, TABLE_COMMENT, COLUMN_NAME, COLUMN_TYPE, COLUMN_COMMENT
    test11  客户表 id  int(11) 主键,自增ID
    test11  客户表 name    varchar(10) 客户姓名
*/

2. 维护索引
需要建立索引的列
  • 出现在where子句,GROUP by子句,order by从句中的列
  • 可选择性高的列,要放在索引的前面
  • 索引不要包含太长的数据类型

注意
1. 索引不是越多越好,过多的索引会降低读写效率
2. 定期维护索引碎片
3. 在sql中不要使用强制索引关键字

3. 维护表结构
注意事项:
  • 使用在线变更表结构的工具
  • 同时对数据字典进行维护
  • 控制表的宽度和大小
4. 在适当的时候对表进行水平拆分或垂直拆分
垂直拆分

这里写图片描述
拆分原则:
1. 经常一起查询的列放到一起
2. text,bolb等大字段拆分到附加表中

水平拆分,将表的数据拆分

这里写图片描述
使用HASH的方法对数据进行索引,即可找到指定的表
这里写图片描述

数据库中适合的操作

  1. 尽量使用批量操作代替逐条操作
  2. 禁止使用select * 这样的查询
  3. 控制使用用户自定义函数
  4. 不要使用数据库中的全文索引
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值