高并发操作和查询的数据采集和查询系统的oracle数据库设计建议

标签: 并发 数据 系统 | 发表时间:2013-07-22 19:14 | 作者:superch0054
出处:http://blog.csdn.net

(1) 使用分布式垂直切分。由于已经使用了Oracle RAC 提供分布式的集群服务。所以对于产生大数据和高并发的表,可以采用数据库垂直分片(比如1-500号集中器的数据采集到数据库A、500-1000到B)。数据分片,是将整体数据分摊在多个存储设备上,这样每个存储设备的数据量相对就会小很多,以此满足系统的性能需求。分区可以提高可管理性、性能与可用性,从而给各种各样的应用程序带来极大的好处。当然一个合理的分片策略是最关键的。不当的分片策略有可能反而带来性能的下降。

(2) 使用主从表。主从复制、读写分离,减少生产系统压力。也就是说,对应需要频繁进行写操作的数据表,为该表设置从表。每5分钟将主表数据同步到从表。所有查询的操作都对从表进行。这样写操作针对主数据库表,读则是从“从数据库”。虽然读操作略有延迟,因为集中器本身就是20分钟提交一次数据,所以只要同步时间在20分钟以内,对数据的实时性并不会产生大的影响。但是这样大大提高了检索的效率。

(3) 使用分区表。避免一个表过大,当期数据与历史数据分离,提升存储和处理效率。

虽然Oracle单张表的最大记录条数十3.6E+17。但一个表一旦数据量达到一定规模。性能方面一定会出现问题。通过使用分区表,将当期数据与历史数据分离,这样是可以大大提高检索和操作的效率的。

在分区表的基础上进行数据存档是对过期的数据进行分开存储,当然存储的时间根据实际需求制定。这需要对数据以及应用程序对数据的使用情况,有非常充分的了解。比如电子商务公司的大数据处理只将3个月内的数据存入活跃数据库,而旧订单则被存入单独的存储。这个途径同样可以运用于抄表系统的数据仓库。当然可以存储更多的近期数据用于报告和查询,使用频度少的数据可以被存入单独的存储设备。

(4) 定期进行数据清除。有时候我们一直忙于收集数据而不清楚究竟需要保存多少数据,如果你存储了非常多用不到的数据,那么这将毫无疑问的降低你有效数据的处理速度。在业务需求的基础上审查数据是否可以被删除,从中分析出需要储存数据的类型,不仅会节省存储空间,同样会提升有效数据的分析速度。主要的方法是给数据仓库建立附加列,比如created_date、created_by、update_date及updated_by。通过这些附加列可以对数据进行阶段性的访问统计,这样就可以清楚数据的有效周期。这里需要着重对待的是数据清除的逻辑。比较好的是Oracle自身就具备了强大的归档能力,执行alter database archivelog;即可将数据库设置成archive log mode,Oracle将会自动归档。

(5) 使用memcached缓存系统。Memcached是一个通用的分布式内存缓存系统,主要用于减少动态应用的数据库负载,提升访问数据库的速度,它具有高性能和分布式等优点。。由于Memcached可以有效减少Web站点数据库的负载,它已经成为目前主流的互联网网站所采用的缓存解决方案。Memcached已经是一种非常成熟的缓存解决方案产品,它被广泛应用于负载大、并行程度高的网站之上,许多著名的网站,如Facebook、Sina、豆瓣等都在其网站实现中或多或少的使用了Memcached产品。通过使用Memcached缓存系统可以大大提高服务器的响应速度。在用户数据也都比较复杂、用户数据之间的关联度也比较高、而且需要对数据库进行频繁的更新或检索操作,采用Memcached机制正好可以很好的解决这些问题。

(6) 使用物化视图。Oracle的物化视图提供了强大的功能,可以用于预先计算并保存表连接或聚集等耗时较多的操作的结果,这样,在执行查询时,就可以避免进行这些耗时的操作,而从快速的得到结果。增加和删除物化视图不会影响应用程序中SQL语句的正确性和有效性;物化视图需要占用存储空间;当基表发生变化时,物化视图也应当刷新。

(7) 使用数据冗余化设计。通过数据库字段的冗余化设计,减少表间连接查询。

在插入数据的时候,在多个表内生成同种字段的数据,从而使得在查询时,减少表连接的格式,从而能够提高查询的效率,减轻数据库的查询负荷。

(8) 合理使用索引。支持混合索引机制,集成Bitmap和B-Tree技术。通过索引的合理设置,可以大大提高查询效率。比如Bitmap索引比较适合决策支持系统,因为它虽然更新比较耗时。但对静态数据查询效率非常高。而B-tree 索引很适合 OLTP 应用程序,因为OLTP 系统经常更新和删除。

(9) SQL优化。查询时,避免子查询,少用模糊匹配,少用*,不要union等;操作时,避免长事务,长锁,用行锁定替代页锁定等。

作者:superch0054 发表于2013-7-22 19:14:06 原文链接
阅读:93 评论:0 查看评论

相关 [并发 数据 系统] 推荐:

高并发操作和查询的数据采集和查询系统的oracle数据库设计建议

- - CSDN博客架构设计推荐文章
(1) 使用分布式垂直切分. 由于已经使用了Oracle RAC 提供分布式的集群服务. 所以对于产生大数据和高并发的表,可以采用数据库垂直分片(比如1-500号集中器的数据采集到数据库A、500-1000到B). 数据分片,是将整体数据分摊在多个存储设备上,这样每个存储设备的数据量相对就会小很多,以此满足系统的性能需求.

京东售后系统架构设计:专治多端并发、数据不一致的臭毛病

- -
通过阅读本文,您将了解到一个售后系统应该具备的一些能力、在整个上下游系统中的定位、基本的系统架构,以及针对售后业务场景中常见问题的解决方案. 京东到家售后系统作为逆向流,强依赖京东到家业务域,目前涵盖了:退款、退货、换货、维修等四大类场景,并且为用户与商家提供申诉、仲裁场景支持,为计费与结算系统提供逆向金额数据支持.

高并发系统之限流特技

- - 编程语言 - ITeye博客
在开发高并发系统时有三把利器用来保护系统:缓存、降级和限流. 缓存的目的是提升系统访问速度和增大系统能处理的容量,可谓是抗高并发流量的银弹;而降级是当服务出问题或者影响到核心流程的性能则需要暂时屏蔽掉,待高峰或者问题解决后再打开;而有些场景并不能用缓存和降级来解决,比如稀缺资源(秒杀、抢购)、写服务(如评论、下单)、频繁的复杂查询(评论的最后几页),因此需有一种手段来限制这些场景的并发/请求量,即限流.

高并发系统设计思路

- - 掘金 后端
不管是哪一门语言,并发都是程序员们最为头疼的部分. 同样,对于一个软件而言也是这样,你可以很快增删改查做出一个秒杀系统,但是要让它支持高并发访问就没那么容易了. 如何让系统面对百万级的请求流量不出故障. 如何保证高并发情况下数据的一致性写. 作为一个架构师,首先要勾勒出一个轮廓,如何构建一个超大流量并发读写、高性能,以及高可用的系统,这其中有哪些要素需要考虑.

数据库内核的并发控制

- - idea's blog
大部分程序员最先接触并发编程, 一般是从编程语言里的多线程和锁开始. 但是, 并发控制是一种广义的技术思想, 千万不可将眼光局限于编程语言所提供的锁. 将编程语言里的并发控制技术推广, 就能得到任何层面的并发控制技术.. 以操作一个文件为例, 如果不做并发控制, 就会遇到数据完整性问题. 例如, 我们写入的一项数据, 对应着现实对象, 如果不做并发控制, 那么可能读到的时两项数据的混合体, 或者只读到一项数据的部分..

8种Nosql数据库系统对比

- xcv58 - 伯乐在线 -博客
  导读:Kristóf Kovács 是一位软件架构师和咨询顾问,他最近发布了一片对比各种类型NoSQL数据库的文章. 文章由敏捷翻译 - 唐尤华编译.   虽然SQL数据库是非常有用的工具,但经历了15年的一支独秀之后垄断即将被打破. 这只是时间问题:被迫使用关系数据库,但最终发现不能适应需求的情况不胜枚举.

Linkedin 大数据生态系统

- - 冰火岛
随着hadoop及其生态系统技术的应用,海量数据挖掘和机器学习算法在实际项目中的作用不断增加. Linkedin的大数据生态系统主要基于hadoop,hive,pig等,从而帮助数据科学家和机器学习研究人员从海量数据中抽取知识,构建新的数据产品特征. 实际上,主要是为了解决最后一公里,提出一套丰富的开发生态系统.

数据分析平台系统架构

- - 企业架构 - ITeye博客
      大数据技术是近几年发展比较繁荣的技术方向,出了很多优秀的开源项目,也有越来越多的公司投入大量人力在其中. 认识到数据的重要性,数据分析平台系统也成为数据平台重点建设的项目,数据分析被广泛应用到电商、金融、教育、医疗领域. 开源的OLAP数据分析引擎:. 1.2 wedata系统架构图. 已有 0 人发表留言,猛击->> 这里<<-参与讨论.

再谈主数据管理系统(9.23)

- - 人月神话的BLOG
对于MDM主数据管理在我前两年的博客文章中谈的比较多,由于MDM一直不是我们重点研发的一个产品,因此最近关注的并不太多,但是对于SOA或ESB的应标会经常遇到客户有MDM主数据管理的需求,因此对于主数据管理系统的建设再做下简单的说明. 基础层应该具备的两个关键功能-ETL和流程引擎. 对于主数据管理系统的基础层应该具备两个关键能力,一个是ETL,一个是流程引擎.

OceanBase 数据库的系统架构

- -
OceanBase 数据库采用 Shared-Nothing 架构,各个节点之间完全对等,每个节点都有自己的 SQL 引擎、存储引擎,运行在普通 PC 服务器组成的集群之上,具备可扩展、高可用、高性能、低成本、云原生等核心特性. OceanBase 数据库的整体架构如下图所示. OceanBase 数据库支持数据跨地域(Region)部署,每个地域可能位于不同的城市,距离通常比较远,所以 OceanBase 数据库可以支持多城市部署,也支持多城市级别的容灾.