范式的优点和缺点
当为性能问题而寻求帮助时经常会被建议对schema 进行范式化设计尤其是写密集的场景这通常是个好建议因为下面这些原因范式化通常能够带来好处
范式化的更新操作通常比反范式化要快
当数据较好地范式化时就只有很少或者没有重复数据所以只需要修改更少的数据
范式化的表通常更小可以更好地放在内存里所以执行操作会更快
很少有多余的数据意味着检索列表数据时更少需要DISTINCT或者GROUP BY语句还是前面的例子在非范式化的结构中必须使用DISTINCT 或者GROUP BY 才能获得一份唯一的部门列表但是如果部门(DEPARTMENT)是一张单独的表则只需要简单的查询这张表就行了
范式化设计的schema 的缺点是通常需要关联稍微复杂一些的查询语句在符合范式的schema 上都可能需要至少一次关联也许更多这不但代价昂贵也可能使一些索引策略无效例如范式化可能将列存放在不同的表中而这些列如果在一个表中本可以属于同一个索引
返回目录高性能MySQL
编辑推荐
ASPNET MVC 框架揭秘
Oracle索引技术
ASP NET开发培训视频教程
数据仓库与数据挖掘培训视频教程