课程名称:数据库设计那些事
课程章节:维护优化
讲师:sqlercn
课程地址:https://www.imooc.com/video/1903
课程内容:
1.状态字段的含义都记录在数据字典中,使用时要通过数据字典来查询含义,数据字典很重要
2.使用过程中,发现索引不适用,删除旧的,建立新的索引
3.由于需求变化,列的增加和减少
4.拆分表:水平和垂直
维护和优化工作索要做的事情:
1:数据字典记录表中每个列所存储的内容是什么,方便后期维护和升级,特别是一些状态字段
2:索引的维护,主要是从一个动态变化的角度来看待我们的数据和索引
3:数据表中肯能存在过时的字段,需要清理
4:当表中的数据量达到一个数量级的话,可能会影响查询的速度,此时就需要对表进行适当的拆分了
维护数据字典:
1.第三方工具:针对不同的DBMS
2.利用数据库本身的备注字段:对表和列增加备注字段,举例如图。
3.导出数据字典(很通用)但是注意:更改表备注时,只需要更改表备注,其他的一些列的属性(列的长度、宽度、是否非空)必须保持原样
数据库如何维护索引
如何选择合适的列建立索引
1. 出现在WHERE从句,GROUP BY从句,ORDER BY从句中的列
2. 可选性高的列要放到索引的前面
3. 索引中不要包括太长的数据库类型
注意事项
1. 索引并不是越多越好,过多的索引不但会降低写效率,而且会降低读的效率
2. 定期维护索引碎片
3. 在SQL 语句中不要使用强制索引关键字
维护(修改)表结构
注意事项
1、MySQL5.5之前会锁表,可使用第三方工具;5.6之后本身支持在线表结构变更
2、同时维护数据字典
3、控制表的宽度和大小
适合的操作
1、批量操作(数据库中)逐条操作(应用程序中)
2、尽量少用"select * "查询
3、控制使用用户自定义函数(使用函数,索引不起作用)
4、不要使用全文索引(中文支持不好,需要另建索引文件)
表的垂直拆分(由于需求变更,表的列增加)
1.拆分的好处:一页中行数越多I/O效率越高,但是表的宽度过大时(列很多,数据很大),一页中存储的数据会变少,I/O效率低,拆分成窄表时,提高了效率
2.拆分的原则:经常查询的列放在一起,大字段拆分到附加表
表的水平拆分就是为了控制表的大小,也就是说,把一张大表里面的数据分配到其它几张相同的表中,这样就可以减少一张表里面存储的数据。一般采用的是哈希的方式。
课程收获:
管理一个系统是对其的硬件,软件,可用性和安全负责.管理还包括跟踪并管理系统的增长情况。
维护不只是备份数据库。这只是工作的一部分,你还需要完成一些周期性的工作以保证系统的可用性和响应速度。需要监视日志,创建容量计划,管理用户账户,以及为不可避免的紧急情况做好准备。
共同学习,写下你的评论
评论加载中...
作者其他优质文章