xquery查询优化

参考 http://www.ibm.com/developerworks/cn/xml/x-optxmldb/?S_TACT=105AGX52&S_CMP=tec-csdn 结合实践浅谈优化经验.

 

1.避免规格化

别用关系型数据库的设计准则设计你的XML数据库结构, 数据量大时XML join效率慢到可以到分秒的级别, 别怕数据 冗余, 每个文档尽量少关联数据到其他文档, 堆一起反而效率高, 让人很不习惯的改变.

 

2. 采用唯一的元素名称

节点唯一名可以保证过滤出更小的结果集.

 

3. 执行较少的索引查询

Xpath太长, 从根节点查多层子节点如果又没很好的过滤的话有时查询的数据量过大, 相对路径的xpath大多的时候更快(但不等同于返回的数据量).

 

4.预先计算值

如原文所说 原生 XML 数据库都是以牺牲存储空间并容忍冗余为代价来换取性能的.

 

5.通过查询转换数据

有时别像数据库一样返回List, Map, java bean之类的数据, 它可以直接返回到渲染最前端.

 

6.剖析 XQuery 代码  

很多XML数据库应该都有profile和debug API和工具, 可以看到代码哪里慢了.

 

7. 针对索引写代码,扩展功能.

每个数据库实现都有自己专有的东西, 例如一些优化了的查询函数, wildcard查询, 日期等专有索引; 但索引的代价会导致load document慢而且数据库膨胀.

 

8.  更好的服务器, 大内存, 大/快硬盘, 64位操作系统, 多核CPU; 优化XML数据库配置更多的缓存等.

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值