数据库设计:良好的数据库设计是优化代码的条件,是数据库优化的标准,设计比优化更重要.
主要分为四个部分:
#1#:数据库设计过程 :
第一步:要分析用户的应用需求.
第二步:根据用户需求,写出数据字典:它是关于数据库中数据的描述,即元数据,不是元数据本身.
第三步:对用户的需求进行综合,归纳与抽象,形成一个独立于具体DBMS的概念模型.
也就是根据数据字典去画E-R<Entity-Relation>图.
第四步:定义实体--->E-R图是怎么画的,画E-R图的过程.
第五步:定义联系(也就是二元联系,1~N,N~1,1~1,N~N).
#2#:数据库设计范式 ###***重点*****###
关联数据库设计之时是要遵守一定的规则,也就是设计范式.
在数据库中的设计范式主要有五种:
第一范式(1NF):
对于表中每一行中,都必需要有唯一的列,且每一列的值具有原子性<不可分割>.
也就是说我们要设主键.***
第二范式(2NF):
非主键列的活动必需完全依赖于整个主键,如查找,更新必须得依赖于主键
例:在Hibernate中我们只能依赖于主键进行修改,如果依赖于非主键修改会报错.
第三范式(3NF):
非主键列互不依赖.
也就是说当一个表依赖到另外一张表的数据时,不能依赖于不是主键的列.
例:建立关联时,我们只能用另外一张表的主键进行建立关联.
第四范式(4NF):
第五范式(5NF):
尽量少用,也就是用空间去换时间,第五范式又叫无null范式样.
将表分割成尽可能少的块,为了排除在表中所有的冗余.
也就是说,当一个表里有一个字段只有一个人有数据时,这样这个字段没有数据的人置为null.
这时候就要考虑到要用另外一张表来保存这个数据.
#3#:数据库设计技巧(主要分为六个技巧)
技巧一: 需求分析技巧
技巧二: 表设计技巧
每个表中都应该加入几个有用的字段,如:创建日期,创建用户等.
技巧三: 字段设计技巧
技巧四: 键设计技巧
技巧五: 索引设计技巧
技巧六: 数据完整性设计技巧
#4#:数据库设计规范
oracle数据库优化:
一:一些最常用的语法:
1:大小写
2:exist > in > or
3:列上计算问题,列操作尽量置于操作符右边,少用列格式转换,
不要用到列计算,海量查询时少用格式转换,这样使得对全表扫描.
查询海量数据是,可以使用optimizer hints(ORACLE)
例如/*+ORDERED */
如
SELECT /*+ FULL(EMP) */ E.ENAME
FROM EMP E
WHERE E.JOB = 'CLERK';
而不是
SELECT E.ENAME
FROM EMP E
WHERE E.JOB || '' = 'CLERK';
4:只要是带null的都将导致索引失效,还有调用函数,通配符<%>都将导致索引失效.
5:from与where条件写法,如当查询多个表,或者多个条件查询时,
就要把数据量大的条件放在第一个条件.
查询多个表:例如:
表 TAB1 16,384 条记录
表 TAB2 1 条记录
选择TAB2作为基础表 (最好的方法)
select count(*) from tab1,tab2
多个条件查询:例如:
(低效,执行时间156.3秒)
SELECT …
FROM EMP E
WHERE SAL > 50000
AND JOB = ‘MANAGER’
AND 25 < (SELECT COUNT(*) FROM EMP WHERE MGR=E.EMPNO);
(高效,执行时间10.6秒)
SELECT …
FROM EMP E
WHERE 25 < (SELECT COUNT(*) FROM EMP WHERE MGR=E.EMPNO)
AND SAL > 50000
AND JOB = ‘MANAGER’;
6:排序和分组
7:避免相关子查询
8:where替换Having
9:临时表替换游标.
二:影响数据库的三大特征--->内存,CPU,I/O,netWork.
oracle优化方式与优化模式.
优化方式:RBO:基于规则,低版本默认的是这个,就是一些表的语句写法.
CBO:基于成本-->参照物:定期的表及索引的统计信息.
也就是说:当一个表里的数据只有几条数据时,
这个时候我们就要考虑不要走索引,如果走索引的话,
它是先找索引,然后再找你要的数据,这样使得走了两步.
所以这个时候就有了成本的考虑.
优化模式:
Rule:基于规则的方式.
Choolse: 指的是当一个表或索引有统计信息,则走CBO的方式,反之则用RBO.
First Rows: 是当一个表有统计信息时,它将是以最快的方式返回查询的最先的几行,
从总体上减少了响应时间.
All Rows: 是基于成本的.(CBO)
三:Oracle备份
物理备份:
逻辑备份:
什么叫冷,热备份并解释冷备份和热备份的不同点以及各自的优点?
数据库还在运行时将它备份叫做热备份,
数据库停止时进行备份叫做冷备份
分享到:
相关推荐
【非常棒的数据库优化教程02】 在数据库管理中,优化是提高系统性能的关键环节,尤其是在处理大量数据和复杂查询时。本章节主要探讨如何利用MySQL进行有效的数据库优化,包括索引的使用、选择合适的列类型、优化SQL...
数据库优化工具在这一过程中也起着重要作用。ORACLE提供了各种工具,如SQL*Plus、DBMS_XPlan、AWR(Automatic Workload Repository)和ASH(Active Session History),帮助管理员分析性能瓶颈,生成执行计划,监控...
MySQL 数据库优化技巧总结 MySQL 数据库优化是数据库管理和开发者非常关心的一个问题。由于 MySQL 数据库的性能优化可以直接影响到整个应用系统的性能和用户体验,因此掌握 MySQL 数据库优化技巧对开发者和数据库...
在IT行业中,数据库优化是提升系统性能的关键环节,尤其是在处理大量数据时,SQL数据库的优化显得尤为重要。本文将深入探讨SQL数据库优化方案,包括查询优化、索引优化、存储优化和架构优化等策略,旨在帮助你提升...
当数据库性能下降时,"SQL数据库优化工具"就显得至关重要。这些工具能够帮助我们诊断问题、提高查询效率并优化整体数据库结构,确保系统运行顺畅。 一、SQL查询优化 SQL查询优化是数据库优化的关键部分,它涉及到...
简单描述数据库优化方案,以及数据库一些常用的操作,包括一些简单的查询语句,函数使用,合适学习mysql的读者。 简单描述数据库优化方案,以及数据库一些常用的操作,包括一些简单的查询语句,函数使用,合适学习...
数据库优化是IT领域中至关重要的一个环节,尤其是在大数据量、高并发的系统中,数据库性能的优劣直接影响到系统的响应速度和用户体验。本压缩包包含了关于数据库优化的多个文档,如"SQL语句优化.doc"、"数据库优化:...
《数据库优化与集成之实战和效果》是由郑保卫编著的一本关于数据库管理与优化的专业教材,主要针对数据库系统在实际应用中的性能提升和不同数据库的整合策略进行深入探讨。PDF课件形式使得读者可以方便地在线学习或...
在IT领域,数据库优化是确保系统性能的关键环节,特别是对于SQL Server这样的大型关系型数据库管理系统。本文将深入探讨SQL数据库的优化方法,包括网络优化、硬件优化、操作系统优化、数据库参数调整以及应用程序...
Oracle数据库优化是一门深入的技术领域,它关系到数据库性能的提升和资源的高效利用。本文针对Oracle数据库的优化提供了详尽的指导和案例分析,尤其强调了在CBO(Cost-Based Optimizer,基于成本的优化器)模式下的...
数据库优化包括多个方面,如索引优化、查询优化和存储优化。在Access中,可能需要检查和调整索引以提高查询速度,分析查询性能,以及合理分配内存资源。C#可以通过执行存储过程或者自定义的SQL脚本来完成这些任务,...
在SQL Server 2005中,数据库优化是提高系统性能和效率的关键环节。本文将介绍两种主要的数据库优化工具:SQL Server Profiler和数据库引擎优化顾问(Database Engine Tuning Advisor),以及它们如何帮助DBA们更好...
进行Oracle数据库优化是提升系统性能、确保数据高效稳定运行的关键。本次基础培训将重点聚焦在SQL语句性能优化、数据库的常用管理命令以及常见问题处理上。 一、Oracle之SQL语句性能优化 SQL(Structured Query ...
Oracle数据库优化是一项系统工程,涉及程序设计、操作系统优化、硬件配置、数据库配置以及SQL语句等多个层面。为了提高Oracle数据库的性能,需要对这些层面进行综合考虑,逐一优化。 首先,硬件优化是基础,主要...
( 数据库优化方面.rar ) ( 数据库优化方面.rar ) ( 数据库优化方面.rar ) ( 数据库优化方面.rar ) ( 数据库优化方面.rar ) ( 数据库优化方面.rar ) ( 数据库优化方面.rar ) ( 数据库优化方面.rar ) ( 数据库优化方面...
数据库优化培训课件,供大家一起参考学习。
Oracle数据库优化是一个复杂而关键的领域,涉及到许多层面,包括SQL查询优化、索引策略、内存结构调整、数据库架构设计以及硬件配置等。以下将详细阐述这些知识点。 首先,SQL查询优化是数据库优化的核心部分。...
接下来,"数据库SQL优化总结之百万级数据库优化.pdf"可能深入到实际的优化实践。 1. **数据库架构设计**:在百万级数据量下,合理的设计能避免性能瓶颈,如垂直分割、水平分割,以及读写分离策略。 2. **缓存与...