`
jiaguwen123
  • 浏览: 415150 次
  • 性别: Icon_minigender_2
  • 来自: 深圳
社区版块
存档分类
最新评论

数据库的优化,包括:oracle,mysql.

阅读更多
数据库设计:良好的数据库设计是优化代码的条件,是数据库优化的标准,设计比优化更重要.
    主要分为四个部分:
    #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备份
    物理备份:
    逻辑备份:
  
    什么叫冷,热备份并解释冷备份和热备份的不同点以及各自的优点?
    数据库还在运行时将它备份叫做热备份,
    数据库停止时进行备份叫做冷备份
分享到:
评论

相关推荐

    MySql.Data.dll8.0类库

    MySQL.Data.dll是MySQL数据库连接器的一个重要组成部分,主要用于C#和其他.NET Framework应用程序与MySQL服务器进行交互。这个8.0版本的类库提供了丰富的API,使开发者能够方便地执行SQL查询、管理数据库对象以及...

    学习数据库的代码 oracle mysql.zip

    本压缩包"学习数据库的代码 oracle mysql.zip"显然包含了一些与Oracle和MySQL数据库相关的学习资料,这两大数据库系统在业界广泛使用,各有特点。 Oracle数据库是甲骨文公司(Oracle Corporation)开发的一款关系型...

    通用的数据库管理工具Access, MySQL, Oracle...等等

    标题提到的"通用的数据库管理工具Access, MySQL, Oracle...等等"指的是能够支持多种不同数据库系统的软件,这些工具为数据管理和分析提供了极大的便利。 1. **Access**: Microsoft Access是Microsoft Office套件的...

    com.oracle.ojdbc7jar包下载.zip

    这个版本的驱动包含了Oracle JDBC Thin驱动,它是纯Java实现,无需安装其他数据库客户端软件,只需要这个jar文件,就可以在Java应用程序中连接远程Oracle数据库。 使用ojdbc7.jar包的步骤通常包括以下几个部分: 1...

    MySql.Data.dll.rar

    MySql.Data.dll实现的ADO.NET接口包括`DbConnection`、`DbCommand`、`DbDataAdapter`和`DbDataReader`等,这些接口是.NET框架中的标准数据库访问接口,使得MySQL操作与其他数据库系统(如SQL Server或Oracle)保持...

    com.mysql.jdbc_5.1.5.jar.zip

    然而,值得注意的是,随着MySQL版本的更新,新的驱动程序(如`mysql-connector-java`的更高版本)引入了更多的优化和改进,包括更好的性能、对新数据库特性的支持以及错误修复。因此,尽管5.1.5版本仍能工作,但建议...

    MySql.Data.dll各版本.rar_MYSQL_MYSql.data.ll_MySql.Data.dll

    MySQL数据库是一个开源的关系型数据库管理系统(RDBMS),由Oracle公司维护。它的特点是性能高、可移植性强、易于使用,并且拥有丰富的功能集。.NET开发者通常会用到MySQL.Data.dll来实现以下功能: 1. **连接管理*...

    数据库驱动Mysql + Oracle

    数据库驱动是连接应用程序与特定数据库管理系统的关键组件,它允许程序通过标准接口与数据库进行通信,执行查询、更新数据等操作。...此外,还要注意数据库的性能优化,包括索引使用、事务管理、缓存策略等。

    mysql和 oracle数据库安装文档

    MySQL和Oracle数据库安装文档 MySQL和Oracle都是流行的关系数据库管理系统,它们广泛应用于企业级应用中。对于初学者来说,安装和配置数据库是一件比较困难的事情。因此,本文档旨在提供一个详细的安装指南,帮助...

    数据库连接池性能优化:Oracle与MySQL的比较与实践

    本文将探讨Oracle和MySQL数据库连接池的性能优化策略,并提供实际的代码示例。 数据库连接池是提高数据库访问性能的重要技术。Oracle和MySQL在连接池管理方面有着不同的侧重点和优化策略。Oracle更注重稳定性和资源...

    数据库学习笔记包括:Oracle、MySQL、MongoDB、Redis,Neo4j的在完善.zip

    本压缩包中的学习笔记涵盖了五大主流数据库系统:Oracle、MySQL、MongoDB、Redis以及Neo4j,它们各自拥有独特的特性和用途,适用于不同的场景。 1. Oracle数据库: Oracle是一款关系型数据库管理系统(RDBMS),在...

    Unity链接MySQl所用到的MySql.Data.dll插件

    `MySql.Data.dll`是Oracle公司为.NET框架提供的一个MySQL数据库驱动程序,它允许C#或其他.NET语言与MySQL服务器进行通信。在Unity中,由于Unity支持C#编程,因此我们可以利用这个插件来编写代码,实现与MySQL数据库...

    各种数据库导出XML导入oracle方式.doc

    本文将详细探讨如何将XML数据导入到Oracle数据库,同时也会涉及其他数据库(如SQL Server、MySQL、Sybase)的数据导出至XML,并进行相应的解析。 首先,我们来看SQL Server的数据导出到XML。在SQL Server中,可以...

    oracle jdbc驱动 ojdbc14-10.2.0.4.0.jar工具

    3. **优化的性能**:针对Oracle数据库进行了优化,例如,它可以利用Oracle的并行查询、分区表等功能。 4. **安全特性**:提供了SSL加密、身份验证和授权等安全机制,保障了数据的安全性。 5. **兼容性**:ojdbc14...

    .NetMysql数据库Connector/Net MySql.Data.dll 8.20.0&&6.9.12

    这个库包含了所有必要的组件,如数据提供者、数据适配器、命令对象等,使得.NET开发者可以像操作SQL Server或其他.NET兼容数据库一样操作MySQL。 首先,我们来看版本8.20.0。这个版本属于较新的更新,可能包含以下...

    MySql.Data.dll

    MySQL.Data.dll 是一个重要的组件,它是用于C#应用程序与MySQL数据库进行交互的.NET框架数据提供程序。这个DLL文件是Oracle公司开发的MySql Connector/Net的一部分,它允许开发者使用C#或其他.NET语言来编写能够无缝...

    书籍:Oracle与MySQL数据库索引设计与优化

    《Oracle与MySQL数据库索引设计与优化》这本书深入探讨了两个主流关系型数据库管理系统——Oracle和MySQL中的索引设计和优化策略。索引是数据库性能的关键因素,它们能够加速数据检索,提高系统效率,尤其在大数据量...

    MySql.Data.dll.zip 8.0.20

    综上所述,MySQL.Data.dll 是 .NET 开发者连接和操作 MySQL 数据库的强大工具,它提供了一整套功能,包括连接管理、SQL 执行、数据读取、事务处理、安全性支持以及性能优化等。结合 C# 语言,可以轻松构建高效、可靠...

    mysql.data.dll 各版本下载 最全

    MySQL.data.dll是.NET开发者在构建连接到MySQL数据库的应用程序时常用的一个组件,它是由Oracle公司提供的MySQL连接器,使得.NET应用程序能够与MySQL数据库进行交互。本文将深入探讨MySQL.data.dll的各个版本及其...

    JDBC连接8种数据库经验总结 .doc

    8. **其他数据库** (文档中未提供详细信息,但通常包括如SQLite, H2, Derby等,它们也有各自的驱动类和URL格式) 在使用JDBC连接数据库时,通常需要经过以下步骤: 1. 加载驱动:`Class.forName("&lt;驱动类名&gt;")` 2....

Global site tag (gtag.js) - Google Analytics