
简单描述:
直接进入了解属性模式。它特别适合以下的情况:
- 有一个大的文档,但是它其实拥有一些相似的字段,而且这些字段的一个子集具有相同的特征,最后其实需要对这些子集字段进行排序或者查询;
- 实际上也不是所有文档都会出现需要的排序字段;
- 或者上述两个条件均满足
事实上考虑到性能方面的原因,为了优化搜索可能需要许多索引才能照顾到这些子集。但是创建越多的索引也只会导致性能的下降。属性模式为这种情况提供了一个很好的解决方案。
实例:
一个订单数据文档,其实是有很多需要记录的时间,比如创建时间,支付时间,发货时间等等。在设计数据结构的时候当然第一时间就会想到如图:
实际上这种设计在时间类型比较少的情况下是没有太大问题,但是结合了实际业务场景,一张订单的时间当然不会太少,有时候为了优化排序,不得不建立相应的所以,现在问题就来的,根据这么多字段逐个建立索引那可能建立很多,这样反而会降低整体查询的性能。那么这时候使用属性模式就很合适了。如下图:
ShopWind网店系统是国内最专业的网店程序之一,采用ASP语言设计开发,速度快、性能好、安全性高。ShopWind网店购物系统提供性化的后台管理界面,标准的网上商店管理模式和强大的网店软件后台管理功能。ShopWind网店系统提供了灵活强大的模板机制,内置多套免费精美模板,同时可在后台任意更换,让您即刻快速建立不同的网店外观。同时您可以对网模板自定义设计,建立个性化网店形象。ShopWind网
如果订单数据结构考虑使用了这种模式后,就不需要反复为相似的字段子集建立索引,大大提高查询效率。
结论:
属性模式针对每个文档中许多类似字段提供了更简单的文档索引。通过将这个数据子集移动到一个键值子文档中,我们可以使用不确定的字段名,为信息添加额外的限定符,并更清楚地说明原始字段和值的关系。当我们使用属性模式时,由于需要的索引更少,查询变得更简单更快。
更多SQL相关技术文章,请访问SQL教程栏目进行学习!









