`
jiagyao
  • 浏览: 99376 次
  • 性别: Icon_minigender_1
  • 来自: 北京
文章分类
社区版块
存档分类
最新评论

数据库的优化,包括: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套件的...

    Oracle数据库sql转换mysql数据库工具

    Oracle数据库和MySQL数据库是两种广泛使用的数据库管理系统,它们在数据存储、查询语法、数据库结构以及管理方式上存在显著差异。"Oracle数据库sql转换mysql数据库工具" 提供了解决这一问题的解决方案,允许用户将...

    mysql数据库转换成oracle

    总的来说,将MySQL数据库转换为Oracle涉及到多个步骤,包括数据备份、导出、格式转换、导入和测试。使用合适的工具可以简化这一过程,但理解两者之间的差异和Oracle的最佳实践仍然是至关重要的。在实际操作中,应...

    mysql 数据库转 oracle

    MySQL到Oracle的数据迁移是一项常见的任务,特别是在企业级应用中,可能因为各种原因需要从MySQL迁移到功能更强大的Oracle数据库系统。下面将详细讲解这个过程涉及的关键知识点。 首先,我们需要了解MySQL和Oracle...

    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

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

    Mysql转oracle工具

    这个工具专注于将MySQL的数据库结构和数据转换为Oracle数据库兼容的格式。下面将详细解释这个过程涉及的知识点。 1. **SQL语言的差异**: MySQL和Oracle都是SQL数据库管理系统,但它们对SQL语法的实现有所不同。...

    com.oracle.ojdbc7jar包下载.zip

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

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

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

    OracleTOMysql 转换工具

    Oracle到MySQL转换工具是一种专门设计用于帮助用户将Oracle数据库中的数据和结构迁移至MySQL数据库的应用程序。这个过程通常称为数据库迁移或数据迁移,是企业在更换数据库系统时常常面临的需求。以下是一些关于...

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

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

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

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

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

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

    oracle转mysql.rar

    本资料"oracle转mysql.rar"聚焦于这两者之间的函数转换及差异分析,旨在帮助那些需要将Oracle数据库系统迁移至MySQL环境的用户,或者需要在两者间进行数据交互的开发者。 首先,Oracle和MySQL在SQL语法上有一定的...

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

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

Global site tag (gtag.js) - Google Analytics