索引

目录

什么是索引?

作用

创建索引

查看索引

删除索引

唯一索引    

多列索引    

索引分类

索引的使用

索引的不足


什么是索引?

索引是一种以特定书序保存的专用表。索引并不包含实体中的所有数据,而是用于那些定位表中行的列 ,以及描述这些行的物理位置的信息。

作用

改善查询。大大减少了服务器需要扫描数据量

索引可以帮助服务器避免排序和临时表

索引可以将随机的i/o变为顺序i/o

创建索引

为user 表 username 创建 索引

   mysql -》

   alter table user add index user_name_index  (username);

  sql server/oracle-》

    create index user_name_index on user(username);

查看索引

    mysql-》 

    show index from user;

这时你会发现有两个索引,这时因为 mysql  自动为主键列生成索引。

删除索引

    mysql-》

    alter table user drop index user_name_index ;

    oracle -》

     drop index user_name_index ;

    sql server -》

    drop index user_name_index on user ;   

唯一索引    

 mysql -》

   alter table user add unique index user_name_index  (username) ;

唯一索引好处: 限制索引列出现重复,只要操作相关列,数据库服务器都会检查唯一索引以判断该数据是否存在该表某一行。

多列索引    

 mysql -》

   alter table user add unique index user_name_note_index  (username,note) ;

为 备注和用户名两列创建索引

索引分类

    B树索引  也叫平衡树索引。mysql 、sql server、oracle默认索引都是 B 树索引。

        B树索引  擅长处理包含许多不同值的列

    位图索引 处理包含少量值却占据大量行(所谓低基数)的列。oracle引入

    文本索引 处理数据库中存储的文档

索引的使用

select id from t_user where user_name = 'tom';

当这个sql执行时,服务器首先利用索引快速定位表中的行。如果索引包含满足查询所有内容,那么服务器就不会访问相关表。

索引的不足

      并不是索引越多越好

    首先要知道,索引十一张表需要磁盘空间。每次当对表做增删改相关操作时索引也相应地被更新,。因此索引越多,服务器需要做的工作也越多。

      特殊处理索引

    比如在查询前增加索引,修改表之前 先删掉索引。这样就可以减小服务器的开销。

      是否必要

   当表数据量比较小时,全表扫描更高效。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值