索引(index)

1.什么是索引?

    索引是针对数据建立的目录。

2、为什么要使用索引?

    加快查询速度(数据量大时,优势就体现出来了),一般使用的算法有:二叉查询数(二叉排序)、散列算法(哈希算法)(实现过程:数据存储的时候先通过哈希算法算出存储地址(如果算出的地址相同,则通过其他算法再次算出存储地址,如:开放寻址、再散列、链地址法、建立一个公共溢出区),然后再存储,而查询数据时也会先通过哈希算法计算出存储地址后直接取出数据,这样查询数据的效率就很高了,有甚至可以1次命中,而不足的是:存储数据时会浪费空间)

3、那么使用索引有缺点么?

   肯定是有的,事物都是有两面性的,而使用索引的坏处就是:降低了增删改的速度、增大表的文件大小(索引文件可能大于数据文件),实践问题:如果一张大数据量表索引列比较多,而我们又要经常导入数据(无非就是insert语句),为了节约导入时间,我们必须要先删除索引、再到导入数据、最后再加索引。

4、添加索引的原则

     1. 在经常用作过滤器的字段上建立索引;

    2. 在SQL语句中经常进行GROUP BY、ORDER BY的字段上建立索引;

    3. 在不同值较少的字段上不必要建立索引,如性别字段;

    4. 对于经常存取的列避免建立索引;

    5. 用于联接的列(主健/外健)上建立索引;

    6. 在经常存取的多个列上建立复合索引,但要注意复合索引的建立顺序要按照使用的频度来确定;

    7. 缺省情况下建立的是非簇集索引,但在以下情况下最好考虑簇集索引,如:含有有限数目(不是很少)唯一的列;进行大范围的查询;充分的利用索引可以减少表扫描I/0的次数,有效的避免对整表的搜索。当然合理的索引要建立在对各种查询的分析和预测中,也取决于DBA的所设计的数据库结构。


5、索引类型

     普通索引、主键索引、唯一索引、全文索引。

     普通索引:加快查询速度。

     唯一索引:加快查询速度以及行上的值不能重复。

     主键索引:加快查询速度以及行上的值不能重复。主键索引比唯一,但唯一索引不一定是主键,在一张表上,只能有一个主键,但是一直表上可以有多个唯一索引。

     全文索引:fulltext index   一般text类型适合做全文索引,对英文发挥作用,停止词。用法: where match (全文索引列) against ('索引的单词');



     查看索引:show index  from 表名

     添加索引:create 索引类型(unique primary key 等 不加就是普通索引) index 索引名 on 表名(做索引的列名),方法二:也可以用alter table 表名 add index unique/fulltext 索引名 列名  alter table 表名 add primary key(列名)



















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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值