数据库优化-----Schema优化
1、高效的模型设计
1.1
适度冗余 - 让 Query 尽两减少 Join
b表中有的username 也可以放到a表中冗余 虽然违反了数据库的规范式设计 但是当需要频繁查看a。b表username时可以不必a join b可以大大的提 高效率
大字段垂直分拆 - summary 表优化
实际上,在上面的示例中我们同时还用到了另外一种优化策略,也就是“大字段垂直拆分”策略。大字段垂直拆分策略相对于前面介绍的适度冗余策略在 做法上可以说产不多是完全相反的做法。适度冗余策略是将别的表中的字段拿过来在自己身上也存一份数据,而大字段垂直拆分简单来说就是将自己身上
的 字段拆分出去放在另外(单独)的表里面。 这里涉及到之前一直想的一个问题 和表中其他字段相比访问频率明显要少很多。由于大字段存放的内容较
多,大部分情况都是占整条记录的 80%以上,而数据库中数据在数据文件中的格式一般都是以一条一条记录为单位来存放。也就是说,如果我们要查询某些
记录的某几个字段,数据库并不是只需要访问我们需要查询的哪几个字段,而是需要读取其他所有字段(可以在索引中完成整个查询的情况除外),
也无法做到只读取我们需要的几个字段的数据。这样,我们就不得不读取包括大字段在内的很多并不相干的数据。而由于大字段所占的空间比例非常大,
自然所浪费的 IO 资源也就非常之大了。
大表水平分拆 - 基于类型的分拆优化
统计表 - 准实时优化
1.2 合适的数据类型