数据库原理:数据库的反规范化技能
(1)什么是反规范化技能数据库计划者希望捐躯部门规范化来提供性能,这种从规范化计划的回退方法称之为反规范化技能。
(2)为什么要使用反规范化技能
当数据库对数据模子举行规范化处理后,会发现经过规范化处理后得模子在举行查询操作时结果并不理想。由于经过规范化处理过得数据模子形成一系列的小表,每个小表数据量较小,举行查询操作时往往需要应用程序对这些表举行动态连接操作,这就需要在差别的表中举行多次IO操作。表的连接操尴尬刁难于较少的、小容量的表也许不会产生较大的影响,但是对于数据量十分庞大的数据库,这种多表的连接操作在时间上是很难让用户担当的,此时提高效率的最好方法就是使这些小表归并在一起,这就是数据的反规范化处理。
(3)反规范化技能的优缺点
反规范化技能主要是为了提拔查询性能而举行的一系列处理,包罗对数据表举行连接,合理规划数据的存放,以及合理的引入数据冗余。其优点在于低沉连接操作的需求,低沉外码和索引的数量,还大概淘汰表的数量;带来的题目是数据的重复存储,浪费了磁盘空间,大概出现数据的完整性题目,为了保障数据的同等性,增长了数据维护的复杂性,会低沉修改速度。
(4)反规范化技能
增长冗余列:在多个表中保留相同的列,通过增长数据冗余淘汰或制止查询时的连接操作。
增长派生列:在表中增长可以由本表或别的表中数据计算天生的列,淘汰查询时的连接操作并制止计算或使用集合函数。
重新组表:如果许多用户需要检察两个表连接出来的结果数据,则把这两个表重新组成一个表来淘汰连接而提高性能。
程度分割表:根据一列或多列数据的值,把数据放到多个独立的表中,主要用于表数据规模很大、表中数据相对独立或数据需要存放到多个介质上时使用。
垂直分割表:对表举行分割,将主键与部门列放到一个表中,主键与别的列放到另一个表中,在查询时淘汰 I/O 次数。
示例-1:增长冗余列
规范化:
https://i-blog.csdnimg.cn/direct/7cb3655fffd244d9a3063b8b8aed0689.png
反规范化:
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
页:
[1]