关于数据库优化的那点事

关于数据库优化的那点事

数据库优化应从三方面来考虑:数据库储存分区、表索引、SQL语句优化
今天这篇博客主要是介绍表索引

是否创建索引的原则:

创建索引原则:
  1. 频繁搜索的列
  2. 经常排序的列
  3. 经常连接的列
  4. 指定单独的表空间
不适合创建索引原则:
  1. 表数据量小
  2. 仅包含几个不同值的列(如:性别)
  3. 增删改数据表操作频繁
  4. 增删改性能要求高于查询

索引使用原则:

  1. 表中导入数据后再创建索引。否则每次表中插入数据时都必须更新索引
  2. 在适当的表和字段中创建索引。如果经常检索的数据少于表中数据的15%,则需要创建索引
  3. 限制表中索引数目。索引越多,在修改表时,对索引做出修改的工作量越大(同时索引也是占空间的)

索引的分类:

  1. B-TREE索引 (又叫“普通索引”)
    使用方式:适合创立在重复值比较少的列上,如:姓名。
    分析:先走索引,找到rowid(一个伪列),根据rowid查出数据(这个效率会搞很多)
    语法:

    create index 索引名 on 表名(列名)

  2. 唯一索引
    使用方式:适合在值唯一的字段,如:身份证(主键约束、唯一约束默认会添加唯一约束)
    语法:

    create unique index 索引名 on 表名(列名)

  3. 位图索引
    使用方式:适合在大量相同值。(如:部门编号,工作类别)
    语法:

    create bitmap index 索引名 on 表名(列名)

  4. 反向索引
    使用方式:适用在存储类似序列的值的列上,目的防止某个数据块访问过热(如何批量插入)
    语法:

    create index 索引名 on 表名(列名) reverse

  5. 组合索引
    使用方式:经常作为组合条件的多个列(也可分开建成位图索引)
    语法:

    create bitmap index 索引名 on 表名(列名,列名,…)

  6. 函数索引
    使用方式:适用在经常使用函数的列上
    语法:

    create index 索引名 on 表名(函数(列名))

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值