Oracle 关系型数据库

一、Sql基础篇:

        数据操纵语言DML:select、insert、update、delete、merge;

        数据定义语言DDL:create、alter、drop、truncate;

        事务控制语言TCL:commit、rollback、savepoint;

        数据控制语言DCL:grant(给权限)、revoke(回收权限);

二、SQL的数据类型:1、字符型;2、数值型;3、日期型;4、大对象型;

                            char固定字符,最长2000个;

                            varchar2可变长,最长4000,最小1;

                            number类型;

                            date timestamp;

                            clob(存储单字节数据,文本数据);

                            blob(存储二进制数据);

            Oracle 关系型数据库_第1张图片

三、子查询

            Oracle 关系型数据库_第2张图片

四、事务的特性:

            Oracle 关系型数据库_第3张图片

五、索引

        一般sql优化有几种解决方案:1、索引;2、分区;3、物化视图;4、并行查询;

        索引的目的(减少IO,体现索引的效率):

                            1、大表,返回的行数<5%;

                            2、经常使用where子句查询的列;

                            3、离散度高的列;

                            4、更新键值代价低;

                            5、逻辑AND、OR效率高;

                            6、查看索引在建在那表、列;

        注:索引碎片问题:由于对表做DML操作,导致索引表块的自动更改操作,尤其是基表的delete操作会引起index,entries的逻辑删除,注意只有当一个索引块中的全部index、entry都被删除了,才会把这个索引块删除,索引对基表的delete、insert操作都会产生索引碎片问题;(可以通过index_stats视图解决)

            A、HEIGHT>=4;B、PCT_USED<50%;C、DEL_LF_ROWS/LF_ROWS>0.2;当满足这三个条件,则说明索引碎片问题需要解决;

六、数据库表的设计:

        1、业务需要学会切分;

        2、逻辑分层(即数据库分层,基础信息表尤为重要);

        3、数据库表结构设计与拆分(A、mysql水平拆分;B、分区;C、物化视图;D、中间表的方案;E、设计的方案);       

七、对于结构的优化:

        1、建立普通索引;

        2、建立规则索引;

        3、建立复合索引;

八、关系型数据库和非关系型数据库区别

        Oracle 关系型数据库_第4张图片

九、数据切分

        Oracle 关系型数据库_第5张图片

十、数据拆分缺点和解决方案

    Oracle 关系型数据库_第6张图片

十一、分区表

        主要针对大数据量、频繁访问,一般来讲,oracle表分区的一个区间数据最好不要大于500w条。

        1、range分区:即区域分区,按照定义的区域,进行划分,一定是在创建table的时候直接指定;

        Oracle 关系型数据库_第7张图片

        2、分区索引:分区虽然可以提高查询的效率,但也仅仅是提高了数据的范围,所以我们在有必要的情况下,需要建立分区索引,从而进一步提高效率。

            分区索引大体上分两大类,一类叫做local,一类叫做global;

            1)、local:在每个分区上建立索引;

            2)、global:一种是在全局上建立索引,这种方式分不分区都一样,一般不使用;

                                另一种就是自定义数据区间的索引,也叫做前缀索引,这个是非常有意义的,自定义区域值时必须要注意maxvalue;

                注:分区上建立的索引必须时分区字段列。

                Oracle 关系型数据库_第8张图片

         3、hash分区:实现均匀的负载值分配,增加HASH分区可以重新分布数据。      

         4、list分区:按照值进行分区;

         5、复合分区:把范围分区和散列分区相结合,或者范围分区和列表分区相结合;

         6、间隔分区:是一种分区自动化的分区,可以指定时间间隔进行分区,这是oracle11g的新特性,这个功能在实际的工作中也非常常用。

                Interval Partitioning,一直是oracle数据库引以为荣的一项技术,正是分区的存在让oracle高效的处理海量数据成为可能。

                Interval Partitioning实际上是由range分区引申的,最终实现了range分区的自动化。

               Oracle 关系型数据库_第9张图片                















你可能感兴趣的:(Oracle 关系型数据库)