zoukankan      html  css  js  c++  java
  • SQLite进阶-16.索引

    索引

    索引(Index)是一种特殊的查找表,数据库搜索引擎用来加快数据检索。简单地说,索引是一个指向表中数据的指针。
    比如:在图书馆找书时,可以通过图书编号、图书分类等信息快速索引到你要找的书。

    • 索引虽然能够加快SELECT查询和WHERE子句的速度,但是他也会减慢使用UODATE和INSERT语句时的数据输入。
    • 索引可以创建或删除,不会影响数据。
    • 索引列可以指定单列或多列
    • 索引也可以是唯一的,与 UNIQUE 约束类似,在列上或列组合上防止重复条目。

    创建索引

    -- 语法
    CREATE INDEX index_name ON table_name
    
    -- 索引列可以指定单列或多列
    -- 单列
    CREATE INDEX index_name ON table_name(column_name);
    
    -- 多列
    CREATE INDEX index_name ON table_name (column1, column2);
    
    -- 唯一索引
    CREATE UNIQUE INDEX index_name ON table_name (column_name);
    
    -- 隐式索引
    -- SQLite数据库会为表的主键自动创建一个索引,不需要自己主动去创建,称为 隐式索引
    
    

    查看索引

    SELECT * FROM sqlite_master WHERE type='index';
    

    删除索引

    DROP INDEX index_name;
    

    创建索引的注意项

    • 索引不应该使用在较小的表上。
    • 索引不应该使用在有频繁的大批量的更新或插入操作的表上。
    • 索引不应该使用在含有大量的 NULL 值的列上。
    • 索引不应该使用在频繁操作的列上。

    索引使用(Indexed By)

    当创建索引后,在写语句时,需要使用索引来查询(修改、删除)数据。

    -- 语法
    SELECT|UPDATE|DELETE column1, column2...
        INDEXED BY (index_name) table_name
        WHERE [condition];
    
    -- 实例
    -- 先创建索引name_index
    CREATE INDEX name_index ON link_men(name);
    
    -- 使用索引name_index查询数据
    SELECT * FROM link_men 
        INDEXED BY name_index
        WHERE name like '兰%';
    
    
  • 相关阅读:
    c++的const总结
    http框架--Forest 的使用
    SQL 语句大全
    Mysql 总结
    【Spring注解驱动开发】使用@Scope注解设置组件的作用域
    注册中心EUREKA(二)--配置列表
    Linux命令发送Http GET/POST请求
    真正理解NIO
    高并发下接口幂等性解决方案
    代码量统计工具
  • 原文地址:https://www.cnblogs.com/haitao130v/p/11370635.html
Copyright © 2011-2022 走看看