zoukankan      html  css  js  c++  java
  • 数据库SQL索引

    一、索引的意义

    表中创建索引,以便更加快速高效地查询数据。

    用户无法看到索引,它们只能被用来加速搜索/查询。

    注释:更新一个包含索引的表需要比更新一个没有索引的表花费更多的时间,这是由于索引本身也需要更新。因此,理想的做法是仅仅在常常被搜索的列(以及表)上面创建索引。

    二、索引创建与删除、查看

    (1)创建索引

    1、在表上创建一个简单的索引。允许使用重复的值。索引不止一个列,可以在括号中列出这些列的名称,用逗号隔开。

    CREATE INDEX index_name ON table_name (column_name1,..,column_nameN)

    2、在表上创建一个唯一的索引。不允许使用重复的值。唯一的索引意味着两个行不能拥有相同的索引值。

    CREATE UNIQUE INDEX index_name ON table_name (column_name1,..,column_nameN)

    3、在创建表时创建索引

    CREATE TABLE  table_name (

         ...,

        index  index_name (column_name[(length)])

    );

    4、修改表时创建索引

    ALTER TABLE table_name ADD UNIQUE index_name (column_list);

    (2)删除索引

    DROP INDEX [index_name] ON table_name;

    (3)查看索引

    SHOW INDEX FROM table_name;

    三、查询不走索引情况

    近期笔试两次遇到了回答索引不使用的情况

    (1)建立组合索引,但查询谓词并未使用组合索引的第一列,此处有一个INDEX SKIP SCAN概念

    (2)索引列可能包含空值

    (3)索引列上有函数运算,导致不走索引

    (4)索引不适用于隐式转换的情况

    (5)!=或者<>(不等于),可能导致不走索引,也可能走 INDEX FAST FULL SCAN

    (6)like '%liu' 百分号在前
    (7)not in ,not exist
  • 相关阅读:
    Websocket --socket.io的用法
    Vuex中mapState的用法
    vue中关于computed的一点理解
    webuploader大文件分片,多线程总结
    pdf的使用遇到的问题
    单文件WebUploader做大文件的分块和断点续传
    webUploader大文件断点续传学习心得 多文件
    iframe子页面与父页面元素的访问以及js变量的访问
    pwa 集合
    mpvue 转小程序实践总结
  • 原文地址:https://www.cnblogs.com/maokun/p/7489726.html
Copyright © 2011-2022 走看看