数据库简介

  • 数据库管理系统(Database Management System):
  1.  是一种操纵和管理数据的大型软件,用于建立、使用和维护数据,简称DBMS。
  2. 它对数据进行统一的管理和控制,以保证数据的安全性和完整性。
  3. 用户通过DBMS访问数据库中的数据,数据库管理员也通过dbms进行数据库的维护工作。
  4. 它可使多个应用程序和用户用不同的方法在同时或不同时刻去建立,修改和询问数据。
  5. DBMS提供数据定义语言DDL(Data Definition Language)和数据操作语言DML(Data Manipulation Language),供用户定义数据库的模式结构与权限约束,实现对数据的追加、删除等操作。

  只要做数据处理,软件规模达到一定程度,似乎都称为了数据库。

  如:HBase/MongoDB等等

  • 数据库管理系统(Database Management System):
  • 衡量是否是数据库的标准:
  • ACID,是指在数据库管理系统(DBMS)中事务所具有的四个特性:
  1. 原子性(Atomicity)
  2. )一致性(Consistency)
  3. )隔离性(Isolation)
  4. )持久性(Durability)
  • 历史上的几种类型的数据库:
  • 1 层次型
  • 2 网状型
  • 3 关系型

关系数据库,是建立在关系数据库模型基础上的数据库,借助于关系代数等概念和方法来处理数据库中的数据,同时也是一个被组织成一组拥有正式描述性的表格,该形式的表格作用的实质是装载着数据项的特殊收集体,这些表格中的数据能以许多不同的方式被存取或重新召集而不需要重新组织数据库表格。

数据库调优的方式通常有如下几种:

1)人工调优。
主要依赖于人,效率低下;要求操作者完全理解常识所依赖的原理,还需要对应用、数据库管理系统、操作系统以及硬件有广泛而深刻的理解。

2)基于案例的调优。
总结典型应用案例情况中数据库参数的推荐配置值、数据逻辑层设计等情况,从而为用户的调优工作提供一定的参考和借鉴。但这种方式忽略了系统的动态性和不同系统间存在的差异。

3)自调优。
为数据库系统建立一个模型,根据“影响数据库系统性能效率的因素”,数据库系统自动进行参数的配置。一些商业数据库,实现了部分自调优技术。

数据库调优五个阶段的主要技术

1 应用情况的估算。
应用的使用方式(把业务逻辑转换为数据库的读写分布逻辑,以是读多写少还是读写均衡等来区分OLTP和OLAP;应用对数据库的并发情况、并发是否可以池化等)、数据量、对数据库的压力、峰值压力等做一个预估。

2系统选型策略
确定什么样的数据库可以适用应用需求,并确定数据库是使用开源的还是商业的,是集使用群还是单机的系统,同时对操作系统、中间件、硬件、网络等进行选型。
3 数据模型的设计
主要是根据业务逻辑,从几个角度考虑表的逻辑结构,内容如下:

  • 3.1 E-R模型设计:遵循E-R模型设计原理。偶尔的适当程度的非规范化可以改善系统查询性能。
  • 3.2 数据逻辑分布策略:目的是减少数据请求的不必要的数据量,把用户需要的数据返回;可用的技术如分区、用E-R模型分表等(如互联网企业典型的用法,根据业务的不同,进行分库、分表等操作)。
  • 3.3 数据物理存储策略:目的是减少IO,如启用压缩技术、把索引和表数据的存储分开,不同的表数据分布于不同的表空间,不同表空间分布在不同的物理存储上(尤其是读写量大的表空间分布在不同的物理存储上)、日志、索引和数据分布在不同的物理存储上等。
  • 3.4索引:在查询频繁的对象上建立合适的索引,使索引的正效应大于负效应(索引的维护存在消耗)。

4 SQL设计。

编写正确的、查询效率高的SQL语句。这依据的主要是“查询重写规则”,编写语句的过程中要注意,要有意识地保障SQL能利用到索引。

5 数据库功能的启用
数据库为提高性能提供了一些功能,可合理使用,具体如下:

  • 5.1 查询重用:根据实际情况进行配置,可缓存查询执行计划、查询结果等。
  • 5.2数据库参数的设置:可设置合适的参数如数据缓冲区等。
  • 模型系统预运行。在备用系统上模拟实际运行环境,加大压力进行系统测试,提前发现问题。

6 系统监控与分析。在工业环境下,加强对系统的运行监控和日常的分析工作,具体如下:

  • 6.1 应用系统表现:收集用户对应用系统的使用意见、系统存在问题等,因为这些可能是用户在第一时间发现的。
  • 6.2 OS环境监控:实时监控CPU、内存、IO等,并对比实时情况与历史正常情况。
  • 6.3 据库内部状况监控:一些数据库提供系统表、视图、工具等手段,向用户提供数据库运行过程中内部状况的信息,如锁的情况,这些都需要实时监控,并对比实时情况与历史正常情况。
  • 6.4日志分析:在数据库的日志、操作系统的日志中找出异常事件,定位问题。
原文地址:https://www.cnblogs.com/yanyiyaner/p/9202237.html