石岩做网站公司,怎么免费制作一个网站,网站建设色系搭配,网站怎么添加二级域名最近做的一个项目涉及到大数据量的数据表查询。数据表总量在7亿-20亿左右#xff0c;以主键建立全局唯一索引#xff0c;分区策略是hash分区范围分区#xff0c;很大部分情况下查询条件命中记录数超过万条#xff0c;单次返回前XX条记录。在调优过程中总结出以下经验#…最近做的一个项目涉及到大数据量的数据表查询。数据表总量在7亿-20亿左右以主键建立全局唯一索引分区策略是hash分区范围分区很大部分情况下查询条件命中记录数超过万条单次返回前XX条记录。在调优过程中总结出以下经验 1在业务规则允许的情况下尽量减少区间限制条件即便该属性是索引字段。如DATEmin AND DATA max。如果有区间限制条件会将所有记录与限制条件逐一比较如果记录数较大则会严重影响查询效率。 2使用order by排序尽量保证与索引顺序一致oracle在建立索引的时候会默认以升序排序order by规则与索引建立顺序一致的话则不会再单独进行排序操作 3如果查询条件均在索引范围可考虑先搜索索引的rowid通过rowid回表获取数据。该方法的好处是尽量减少回表访问。需要注意的是该方法适合返回数据量较小的情况如翻页记录等。 目前还存在多hash分区数据访问排序效率很慢的问题还在解决中待续 4在查询总记录条数时建议sql写法为SELECT COUNT(1) FROM TABLE_NAME WHERE [OPTION CONDITION...]。若查询条件均为索引字段这样写的好处是不用进行回表操作直接查找索引获得结果。转载于:https://www.cnblogs.com/xt2008/p/5735036.html