• 索引


    # 索引:加快查询的(类似书的目录) 索引类型:默认B树索引(默认)、位图索引
    # 索引的作用:
      --通过使用索引,可以大大提高数据库的检索速度,改善数据库性能
      --提高速度的同时,消耗大量的时间和空间
      --索引的底层原理:


      1.若没有索引,搜索某个记录时(例如:查找name='王大拿'),需要搜索所有的记录,因为不能保证只有一个'王大拿'
      2.若在name列上创建索引,oracle会对权标进行一次搜索,将每条name值记录并排序,然后构建一个索引目录,在索引目录中查找'王大拿'

    ***创建索引***

    create index 索引名称 on 表名(字段名);
    create index myindex on emp(deptno); --主键默认就是索引、
    create index myindex2 on emp(deptno,sal); --二级索引

    # 什么情况适合建立索引?
    数据集中的列(主键列(empno.id)不集中,但是因为会被频繁使用,因此也适合建索引),经常在where中使用的列,数据量大

    ***删除***

    drop index 索引名称;
    --创建索引,创建完成后,如何应用?Oracle会自动使用索引
    create index ix_emp on s_emp(first_name);
    
    --删除索引
    drop index ix_emp;



    # 创建索引的指导原则 ---索引的创建会浪费空间,不要过度创建
    按照下列标准选择建立索引的列
      1.频繁搜索的列
      2.经常用作查询选择的列
      3.经常排序、分组的列
      4.经常用作连接的列(主键/外键)

    请不要使用下面的列创建索引
      1.仅包含几个不同值的列
      2.表中仅包含几行

    注意:
    1.查询时减少使用*返回全部列,不要返回不需要的列
    select studentname from student; --快,要什么查询什么

    2.WHERE子句中有多个条件表达式,包含索引的表达式应置于其他条件表达式之前
    select studentname from student where c=3 and a=1 and b=2 ;

    3.避免在order by子句中使用表达式
    ...order by sum(stdentresult)desc;

    4.索引技术是数据库自动使用的,一个表格中存在一个索引就够了
    --一本书,一个目录

  • 相关阅读:
    团队冲刺个人总结第二天
    Gym
    Codeforces Round #162 (Div. 2) A~D 题解
    Wormholes 虫洞 BZOJ 1715 spfa判断负环
    修剪草坪 单调队列优化dp BZOJ2442
    没有上司的舞会 树形dp
    餐巾计划问题 费用流
    最小路径覆盖问题 最大流
    [JSOI2007]麻将 模拟 BZOJ1028
    CF702F T-Shirts FHQ Treap
  • 原文地址:https://www.cnblogs.com/wzhqzm/p/13369130.html
Copyright © 2020-2023  润新知