• 20170623_oracle_优化与体系结构


    一般优化技巧

      建议不用"*"代替所有列名

      删除所有数据用TRUNCATE代替DELETE

      用NOT EXISTS 代替NOT IN

      用EXISTS代替IN

      用EXISTS代替DISTINCT

    表连接方法

      驱动表的选择

      WHERE子句的连接顺序

        表连接关系放在前面

        过滤越多的条件子句应放置到后面

    索引

      索引分类

        B树索引

        语法:CREATE [UNIQUE]INDEX index_name ON tablename (column_list)

           [TABLESPACE tablespace_name];

     

         其他索引:

          唯一索引

          反向键索引

          位图索引

          组合索引

          函数索引

        索引原则: 

          创建索引原则:

            频繁索引的列

            经常排序、分组的列

            经常连接的列

            指定单独的表空间

          不适合建立索引原则

            数据量小

            仅包含几个不同值的列

            数据表操作特别频繁、业务性能要求高

        管理索引

          索引使用原则:

              表中导入数据后再创建索引。否则每次表中插入数据时必须更新索引。

            在适当的表和字段上创建索引。如果经常检索的数据少于表中的15%则需要创建索引。

            限制表中索引的数目。索引越多,在修改表时对索引做出修改的工作量越大。

          索引常见错误用法:

            LIKE

            函数

            运算

    表分区

      把表中数据划分称若干部分,并存储在不同的位置

      优点:

        改善查询性能

        表更容易管理

        便于备份和恢复

        提高数据安全性

      表分区分类

        范围分区:

          列值的范围作为划分条件

        散列分区:

          列的hash值自动分配

        列表分区:

          列值必须明确指定

          一个分区列

        复合分区:

          先按第一分区方法分区

          再按第二分区方法划分子分区

        其他分区

    小结:

      一般SQL优化有哪些手段?

       建议不用"*"代替所有列名

      删除所有数据用TRUNCATE代替DELETE

      用NOT EXISTS 代替NOT IN

      用EXISTS代替IN

      用EXISTS代替DISTINCT

      索引起到什么作用?索引有哪些分类?

      逻辑分类:

        单列或组合索引

        唯一或非唯一索引

        基于函数索引

      物理分类:

        分区或非分区索引

        B树索引

        正常或反向键索引

        位图索引

      表分区使用情况?表分区有哪些分类?

        表分区:

          把表中数据划分称若干部分,并存储再不同的位置

        优点:

          改善查询性能

          表更容易管理

          便于备份和恢复

          提高数据安全性

         表分区分类:

          范围分区:

            列值的范围作为划分条件

          散列分区:

            列的hash值自动分配

          列表分区:

            列值必须明确指定

            一个分区列

          复合分区:

            先按第一分区方法分区

            再按第二分区方法划分子分区

          其他分区:

  • 相关阅读:
    我的算法日志:数据结构之顺序队列与循环队列
    我的算法日志:排序算法之快速排序
    算法:冒泡排序
    算法:桶排序(简易版)
    Android:配置LitePal 3.0
    Android:简单粗暴的二维码生成与扫描
    Linux
    Python
    Linux
    Python
  • 原文地址:https://www.cnblogs.com/xtdxs/p/7080783.html
Copyright © 2020-2023  润新知