大型数据库入门

本文介绍大型数据库的概念及其性能决定因素,以及如何优化性能。

  1. 什么是大型数据库
    -没有一个标准定义
    -包含非常多元组(数据库行)的数据库,或者占用非常大的物理文件系统存储空间的数据库。
    -占据TB量级的磁盘存储,包含数十亿表行。
  2. 为什么需要大型数据库
    今天企业管理的数据总量
    大型数据库入门
  3. 大型数据库性能的决定因素
    OS<DBMS<硬件<应用<架构
    大型数据库入门
  4. 如何提高大型数据库性能
    可分为以下四个步骤:
    ~应用层面的优化
    ~数据库设计与配置优化
    ~操作系统和硬件优化
    ~架构的优化
    4.1 应用层面的优化
    寻找常见的问题:
    应用是否真正使用了它取得的数据?
    应用里执行了太多的查询?(ORM、嵌套)
    应用在毫无必要的时候还连上了数据库?
    应用连接到数据库的次数是不是太多?
    使用连接池了吗?
    使用缓存了吗?
    4.2 数据库设计与配置优化
    设计优化(Schema和Index)
    -优化设计不良或索引不佳的schema,能把性能提高几个数量级。
    -Schema的优化和索引既需要大局观,又需要专注细节。
    -优化通常需要权衡取舍。如为了加快查询添加索引会减慢更新的速度;非规范化的schema能加快某些类型的查询,却让其它类型查询变慢。
    数据库配置优化
    -包括缓存大小、I/O调优、并发数等。
    -具体的配置依赖于服务器的硬件、数据量、查询类型、响应时间、事务持久性和连续性等因素。
    -不要期望改变配置会带来巨大的性能提升。提升的具体大小取决于工作负载,通常可以选择适当的配置参数得到两到三倍的性能提升。
    4.3 操作系统和硬件优化
    最弱部分决定了性能,操作系统和硬件通常也会成为限制因素(如CPU饱和、内存不够、I/O饱和)。
    可以从以下几方面进行优化:
    CPU/内存/IO(RAID、网络存储)/网络/操作系统
    4.4 架构的优化
    When
    构建大型、高性能应用程序
    类型
    ①分散式数据库架构
    其特点是业务单一、单机单业务服务、无交叉关联、简单Replication机制、依赖硬件,数据的存储和管理均由单机实现。
    ②集中式数据库架构
    重点是放在数据库管理和存储上。特点是集群易扩展,功能多;数据存储与应用分离;数据库结构各异,业务连接和使用方式各异。
    ③分布式数据库架构
    其特点是不仅关注存储和管理,并且把应用也注重起来,提供透明应用和策略的数据库服务; 自动扩容、节点自动分裂与合并。