从性能角度进行模型优化
从性能角度进行模型优化
横向分解:(1)一个有很多列的表,依据列的访问频度(2-8定则),分解成几个表,他们之间采用相同的主键,而且是1:1的关系
(2)将大对象列单独存储在一张表中 从性能角度进行模型优化—多列表实例分析
问:某表有200个字段,数据量有1亿,请设计优化该表?
解:1)依据2:8定则,对该表的访问中,很可能80%的情况只涉及20%的40个字段,而20%的情况涉及占80%的160个字段。
为了提高80% 的访问效率,减少I/O和内存开销,可以将该表拆分成两个表:
A(含有最常被访问的40个字段),
B(含有不常被访问160个字段),两表使用相同的主键一一对应。这样可以减少读取数据的I/O开销和内存开销;
2)数据量有1亿,可以根据大多数访问的依据(where部分),将表实现成分区表,这样大大提高表的访问速度。
从性能角度进行模型优化—大对象列实例
问:某网站的新闻表(ID,标题,正文),请优化设计该表?
解:以浏览新浪新闻为例,用户进入新闻频道,首先浏览新闻标题,对感兴趣的标题再进行点击浏览详细的新闻正文。该使用过程说明:
(1)字段访问频度不同:每条新闻记录的(ID,标题)两个字段都会被显示在页面上,而新闻的(正文)字段只会被有选择的读取;
(2)字段占用空间相差太大:新闻(正文)字段内容很长,占用很大空间,对该字段的访问需要很多的I/O开销和内存资源。因此,应该将新闻表拆分成 新闻标题表(ID,标题)和新闻正文表(ID,正文)两张表,他们使用相同的ID做1:1的关联。