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
  • 相关阅读:
    JS中的一些函数式编程术语
    学习RxJS:Cycle.js
    学习RxJS: 导入
    爬虫的终极形态:nightmare
    RxJS/Cycle.js 与 React/Vue 相比更适用于什么样的应用场景?
    [转]Shared——RN如何实现一个ExpandableList(可展开列表)组件
    Algorithm——ZigZag Conversion
    Review——RN视图缩放框架react-native-view-transformer解析
    Between Worlds 3 太阳与地球
    Tips——RN构造函数内绑定导致页面交互卡顿
  • 原文地址:https://www.cnblogs.com/maokun/p/7489726.html
Copyright © 2011-2022 走看看