知识大全 混用范式化和反范式化
Posted 范式
篇首语:常识是人类的守护神。本文由小常识网(cha138.com)小编为大家整理,主要介绍了知识大全 混用范式化和反范式化相关的知识,希望对你有一定的参考价值。
高性能MySQL:混用范式化和反范式化 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!
混用范式化和反范式化
范式化和反范式化的schema 各有优劣 怎么选择最佳的设计?
事实是 完全的范式化和完全的反范式化schema 都是实验室里才有的东西 在真实世界中很少会这么极端地使用 在实际应用中经常需要混用 可能使用部分范式化的schema 缓存表 以及其他技巧
最常见的反范式化数据的方法是复制或者缓存 在不同的表中存储相同的特定列 在MySQL 和更新版本中 可以使用触发器更新缓存值 这使得实现这样的方案变得更简单
在我们的网站实例中 可以在user 表和message 表中都存储 account_type 字段 而不用完全的反范式化 这避免了完全反范式化的插入和删除问题 因为即使没有消息的时候也绝不会丢失用户的信息 这样也不会把 user_message 表搞得太大 有利于高效地获取数据
但是现在更新用户的账户类型的操作代价就高了 因为需要同时更新两张表 至于这会不会是一个问题 需要考虑更新的频率以及更新的时长 并和执行SELECT 查询的频率进行比较
另一个从父表冗余一些数据到子表的理由是排序的需要 例如 在范式化的schema 里通过作者的名字对消息做排序的代价将会非常高 但是如果在 message 表中缓存author_name 字段并且建好索引 则可以非常高效地完成排序
缓存衍生值也是有用的 如果需要显示每个用户发了多少消息(像很多论坛做的) 可以每次执行一个昂贵的子查询来计算并显示它 也可以在 user 表中建一个 num_messages列 每当用户发新消息时更新这个值
返回目录 高性能MySQL
编辑推荐
ASP NET MVC 框架揭秘
Oracle索引技术
ASP NET开发培训视频教程
cha138/Article/program/MySQL/201311/29676相关参考
知识大全 手机记忆体卡无法格式化,档案删除会自动恢复,怎么办,关键求格式化
手机记忆体卡无法格式化,档案删除会自动恢复,怎么办,关键求格式化,记忆体卡无法格式化删除档案后自动恢复怎么办这是记忆体卡变成只读状态了,可尝试以下方法解决:1、用读卡器插到电脑上,修复磁碟,或重新格式
高性能MySQL:范式的优点和缺点 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! 范式的优点和缺
格式化json日期格式对象 调用toDate(timeString) /** *时间对象的格式化 */ Dateprototypeformat=function(format) /*
高性能MySQL:反范式的优点和缺点 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! 反范式的优点
Server对象:数据格式化 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! 第一格式化数据 这
由于数据库设计中所遵循的范式规则比较复杂对于初学者来讲很难完全记住本文针对数据库设计范式的基本概念进行了扼要的总结 第一范式: 对于表中的每一行必须且仅仅有唯一的行值在一行中的每一列仅有唯一的
知识大全 戴尔灵越格式化C盘15R如何格式化要详细教程,我电脑开机进不去准备重做系统
戴尔灵越格式化C盘15R如何格式化要详细教程,我电脑开机进不去准备重做系统 以下文字资料是由(本站网www.cha138.com)小编为大家搜集整理后发布的内容,让我们
Date.Now如何格式化日期 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! )日期格式化显示
asp教程格式化时间日期 publicfunctionformatdt(dtstyle) style=下午:: style=:: style=: style=: style=: st
Java格式化日期 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! Java代码 &