SQL冗余字段的策略和管理
2009-11-26 00:00:00 来源:WEB开发网核心提示:冗余字段的使用在多表联合查询都是大数据量的表的情况下,确实是个不错的选择,SQL冗余字段的策略和管理,有效的减少了IO操作,但结合已有的项目产品来看,不需要则isUpdate置0,等到周期性的策略来更新同时isUpdate=1, 如果项目中使用了memcache,则还可以使用另一个思路来进一步减小数据库IO操作,冗余字
冗余字段的使用在多表联合查询都是大数据量的表的情况下,确实是个不错的选择,有效的减少了IO操作。但结合已有的项目产品来看,冗余字段确实是双刃剑。尤其是大项目的开发,如果忽略某个表的冗余字段的更新,那么后果是灾难性的。如何有效的管理冗余字段是开发组内必须解决的问题。我的解决方案是:使用专门的表来管理冗余字段。例如article表有以下冗余字段
fromUserName,toUserName
如何管理这两个字段呢?通过建立一个表,表结构如下
id,objTable,objName,sourceTable, sourceId,level,isUpdate
其中objTable=目标表,objName= 目标字段,sourceTable=源表,sourceId=源表ID,level=是否需要立即更新,isUpdate=是否已更新
其中,level字段很有必要,有些冗余字段并不需要在源表修改后立即更新,那么可以通过一个定期更新策略来更新。
通过库表的管理,配合一个合理的存储过程,冗余字段的使用将不再是难题。
举例,如果上面两个字段发生变化,则使用触发器或者调用这个存储过程来检查是否有需要立即更新的冗余字段,需要则立即更新,不需要则isUpdate置0,等到周期性的策略来更新同时isUpdate=1。
如果项目中使用了memcache,则还可以使用另一个思路来进一步减小数据库IO操作。下篇再展开来说。
- ››SQL Server 2008 R2 下如何清理数据库日志文件
- ››sqlite 存取中文的解决方法
- ››SQL2005、2008、2000 清空删除日志
- ››SQL Server 2005和SQL Server 2000数据的相互导入...
- ››sql server 2008 在安装了活动目录以后无法启动服...
- ››sqlserver 每30分自动生成一次
- ››sqlite 数据库 对 BOOL型 数据的插入处理正确用法...
- ››sql server自动生成批量执行SQL脚本的批处理
- ››sql server 2008亿万数据性能优化
- ››SQL Server 2008清空数据库日志方法
- ››sqlserver安装和简单的使用
- ››SQL Sever 2008 R2 数据库管理
更多精彩
赞助商链接