• 索引笔记



    1.什么是索引?

        索引是以表列为基础的数据库对象,保存着表中排序的索引列,并且记录了索引列在表中的物理存储位置,实现了表中数据的逻辑排序。

    2.索引的用途?

        1)加快数据的查询速度,减少系统的响应时间。

        2)加快表和表之间的连接速度。

    3.使用索引的代价?

        1)一定的物理空间开销。

        2)创建和维护需要消耗时间,增删改操作时,索引会进行维护。

    4.索引使用的原则?

        1)设为主键的列一定要设置为索引,可以加快主键的定位速度。

        2)定义有外键的列一定要设为索引,可以加快表之间的连接速度。

        3)对于经常查询的列最好建立索引,可以明显加快查询的速度。

        4)对于数据重复严重的列,查询很少涉及的列,不要建立索引。

        5)对于text,image,bit类型的列不要建立索引,这些列要不很大要不太小。

    5.索引分类?

        索引主要分成三类,聚集索引,非聚集索引,唯一索引。

        1)聚集索引:只会对表和视图进行物理排序。一个表或者视图只能有一个聚集索引,一般为主键列。

        2)非聚集索引:不会对表和视图进行物理排序,表或者视图最多只能有250个非聚集索引。

        3)唯一索引:不允许索引有重复的索引值,

    6.索引的建立和删除。

        1)索引的建立: create  unique [clustered]  index  ix_bookid on book (bookid Asc)

        注意事项:可以为聚集和非聚集索引建立unique索引。

        2)索引是删除:drop index book.ix_bookid

        注意事项:无法删除unique和primary key 约束的索引,除非先删除这些约束。

    7.索引的相关操作?

        1)显示索引信息:exec sp_helpindex  students

        2)重命名索引: exec sp_rename students.ix_bookid,students.ix_id

        3)分析索引:主要采用两种方式,查看查询计划,和查询磁盘读取次数。

        4)索引的维护:主要采用

            1,统计信息更新 update statistics students lx_id

            2,dbcc showcontig(students,ix_id)扫描表

            3,使用dbcc indexdefrag(stu,students,ix_id)进行碎片整理。

        

  • 相关阅读:
    KVC之-setValue:forKey:方法实现原理与验证
    李洪强iOS开发之iOS社区收集
    跟着百度学PHP[15]-会话控制session的工作机制
    代码审计学习之文件操作漏洞
    中间人攻击——ARP欺骗的原理、实战及防御
    跟着百度学PHP[14]-PDO的预处理语句2
    跟着百度学PHP[14]-PDO的预处理语句1
    跟着百度学PHP[14]-PDO之Mysql的事务处理2
    跟着百度学PHP[14]-PDO之Mysql的事务处理1
    跟着百度学PHP[14]-PDO的错误处理模式&PDO执行SQL
  • 原文地址:https://www.cnblogs.com/snidget/p/2312276.html
Copyright © 2020-2023  润新知