`
Joy.zhang
  • 浏览: 57276 次
  • 性别: 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备份
    物理备份:
    逻辑备份:
  
    什么叫冷,热备份并解释冷备份和热备份的不同点以及各自的优点?
    数据库还在运行时将它备份叫做热备份,
    数据库停止时进行备份叫做冷备份
分享到:
评论
7 楼 francis.xjl 2010-07-25  
吐故纳新 写道
支持一下啊

6 楼 吐故纳新 2010-07-25  
支持一下啊
5 楼 xiaobird12 2010-07-22  
标题...
4 楼 zhonggeneral 2010-07-22  
纸上谈兵...
3 楼 qingfengjushi1 2010-07-22  
有些东西已经过时了,
比如Oracle在9i以后的版本使用CBO优化器时Oracle会自动判断出驱动表并不以表的前后顺序作为判断条件了。
2 楼 bingki 2010-07-22  
噢,书上说的?没看过!
不过没有mysql的嘛
1 楼 askyuan 2010-07-21  
都是书上说的就没有必要写在上面了

相关推荐

    数据库索引设计与优化.pdf

    豆瓣8.4分,数据库索引设计必读的好书。 高清扫描版,带完整章节书签(不是网上常见的页码书签的版本!!!!)

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

    Oracle与MySQL数据库索引设计与优化 一书,书本有详细介绍

    Oracle数据库学习指南

    38.优化调整Oracle 8i数据库(从操作系统) 39.在Internet上运作公司是一项艰苦的任务--关键任务 40.在oracle中限制返回结果集的大小 41.在远端如何建立standby数据库 42.怎样分析你的SQL语句的效率 43....

    数据库原理(第5版)

    通过这种方式学习,学生可以掌握适用于任意数据库的基本原则,包括小型的Microsoft Access数据库到大型的Oracle或DB2数据库。而且这一方法也避免了一个常见的问题:在同时介绍概念和产品时,学生容易混淆概念与产品...

    超强MySQL课程笔记_V4.0.ctb

    数据库管理系统(DataBase Management System, DBMS): ORACLE、MySQL、DB2 B.DBA 2. SQL语言(结构化查询语言) A. DDL语句 数据库定义语言: 数据库、表、视图、索引、存储过程、函数, CREATE DROP ALTER ...

    最新数据库学习视频分享+oracle+mysql+oracle优化+mysql优化

    这是2018年出炉的数据库学习视频,包括从oracle安装+oracle基础+oracle优化,还包括mysql基础+mysql优化

    C++ Qt 基于数据库Mysql学生信息管理系统.zip

    MySQL 是一款广受欢迎的开源关系型数据库管理系统(RDBMS),由瑞典MySQL AB公司开发,现隶属于美国甲骨文公司(Oracle)。自1998年首次发布以来,MySQL以其卓越的性能、可靠性和可扩展性,成为全球范围内Web应用...

    mysql数据库和oracle数据库之间互相导入备份

    把从Oracle数据库导出的数据导入到MySql数据库中 1. 使用默认的结束符号导入到MySql数据库中: LOAD DATA LOCAL INFILE ‘d:/oracle.txt’ IGNORE INTO TABLE alarmLog 此时Fields的结束符默认的就是’/t’制表符,...

    Java网上书店管理系统(基于MVC模式编写:前端jsp页面、数据库MySQL、服务器Tomcat).zip

    MySQL 是一款广受欢迎的开源关系型数据库管理系统(RDBMS),由瑞典MySQL AB公司开发,现隶属于美国甲骨文公司(Oracle)。自1998年首次发布以来,MySQL以其卓越的性能、可靠性和可扩展性,成为全球范围内Web应用...

    数据库实战.doc数据库实战.doc

    数据库创建:根据设计好的数据库结构,使用数据库管理系统(如MySQL、Oracle、SQL Server等)创建数据库和表。在创建过程中,需要设置合适的字符集、排序规则等参数。 数据查询:使用SQL语言编写查询语句,从数据库...

    数据库课程设计:实战数据库系统开发与优化

    数据库课程设计 摘要:本文介绍了数据库课程设计的重要性以及如何进行实战数据库系统...同时,他们还需要学会使用数据库管理系统(例如MySQL、Oracle等),进行数据库的创建、修改和维护。 2.2 将理论知识应用于实践

    2013 Oracle 技术嘉年华演讲PPT汇总下载

    2013 Oracle技术嘉年华:Oracle数据库优化器探秘_崔华.pdf 2013 Oracle技术嘉年华:OWI性能诊断_魏兴华.pdf 2013 Oracle技术嘉年华:QData数据库一体机解决方案_罗春.pdf 2013 Oracle技术嘉年华:RAC failover ...

    【整理】数据库面试题索引sql优化+数据库SQL优化总结之百万级数据库优化

    数据库面试题索引sql优化.pdf+数据库SQL优化总结之百万级数据库优化.pdf 附赠Oracle高性能sql优化

    基于SQL语言MySQL数据库应用程序及其代码方案

    MySQL是一种关系型数据库管理系统,由瑞典MySQL AB公司开发,目前属于Oracle公司。MySQL是Web应用中使用最广泛的数据库之一,它具有轻量级、快速、稳定和安全的特点。 MySQL数据库的主要特点包括: 1. 开源:MySQL...

    MySQL内幕揭秘:探索MySQL调优指南,解锁MySQL的强大功能

    1997年:MySQL发行版本3.21,并成为了第一个支持多个存储引擎的数据库管理系统。 2000年:MySQL AB成立了美国分部,开始在美国市场推广MySQL。 2003年:MySQL AB发行了版本4.0,包括一些新功能,如子查询、视图和...

    PostgreSQL MySQL Oracle数据库设计优化完美攻略

    PostgreSQL MySQL Oracle数据库设计优化完美攻略

    MySql转换成Oracle工具

    Convert Mysql to Oracle是一个免费的数据库转换工具,实现快速安全地将Mysql数据库导入为ORACLE数据库。 Convert Mysql to Oracle 功能特点 可以转换所有的Mysql字段类型 支持所有版本的Mysql 可以将数据合并到...

    2013年中国数据库大会PPT第一部分

    第一部分包含: 1.大数据革命.pdf 2.MPP NewSQL 数据库集群支撑企业超大规模数据仓库案例介绍.pdf 3.Big Data in Action – 企业如何运用微软 Big Data 的技术具体规划并落实运行.pdf 4.小米hadoop/hbase微实践.pdf ...

    Mysql转Oracle软件 DBMover for Mysql to Oracle

    Dbmover for Mysql to Oracle 是高效的将Mysql导入到Oracle数据库的工具。 使用DBMover可以灵活定义Mysql和Oracle之间表和字段的对照关系,也可以在DBMover创建一个查询,把查询结果当作源表转入到Oracle中。 ...

Global site tag (gtag.js) - Google Analytics