索引在庞大的数据库上最能体现出作用,所谓索引就是根据需求将指定的列提取出来做索引表,可以显著提高在查找数据方面的速度。

在索引的前提下还可以指定索引值是否唯一,索引值是单列或是多列索引。

根据索引类型,索引分为:

  普通索引:

name,只能帮助查找
唯一索引:
name,只能帮助查找,内容不允许重复,可以为null,但也限制唯一。
主键索引:
name,只能帮助查找,内容不允许重复,不允许null,一张表只能有一个主键,但也可以通过unique进行组合
组合索引:
多列共同组成索引,可以有如下模式,1 是不约束的就是说不唯一,2是唯一的
普通多列索引(name,email)
联合唯一索引(name,email)
根据索引方式又分为: 

覆盖索引
当查询的数据是从索引表里面查找的,则是覆盖索引
索引合并
将两个单独的索引放到一起,就是索引合并。
默认的查找方式是全表扫描。
在创建表时创建索引:
create table person(id int not null primary key auto_increment,name char(10) not null,age int not null,address varchar(100) not null,index index_name(name));

普通索引:
create index index_name on person(pname);

删除索引:

drop index_name on tableName;

查看索引:

show index from tableName;

唯一索引:

  建表时创建唯一索引:

create table person(id int not null primary key auto_increment,name char(10) not null,age int not null,address varchar(100) not null,unique index_name(name));

  创建唯一索引:

creae unique index index_name on tableName(ColumnName);

  删除唯一索引:

drop unique index index_name on tabeName;

主键索引:

  创建表时创建索引:

create table in1(nid int not null auto_increment primary key,name varchar(32) not null,email varchar(64) not null,extra text,index ix_name (name)
)ORcreate table in1(nid int not null auto_increment,name varchar(32) not null,email varchar(64) not null,extra text,primary key(ni1),index ix_name (name)
)创建表 + 创建主键

  创建索引:

   alter table tableName primary key(ColumnName);

  

  删除索引:

  

方式一:
alter table tableName drop primary key;方式二:
alter table tableName modify ColumnName int,drop primary key;

组合索引:

设有如下表:

create table tb1(id int not null primary key auto_incremet,name char(10) not null,age int(2) not null,other text)engine=innoDB default charset=utf8;

创建组合索引:

create index index_name on tableName(columnName1,columnName2);

如上创建组合索引之后,查询:

  • name and email  -- 使用索引
  • name                 -- 使用索引
  • email                 -- 不使用索引

注意:对于同时搜索n个条件时,组合索引的性能好于多个单一索引合并。

other:

explain  关键字可以查看查询语句是通过何种方式查找数据。
explain select * from person where xx=xx;
如果type列示 all则表示全表扫描
如果是ref 则是通过索引查找的
all 表示 全表扫描
ref 表示 普通索引查找
const 唯一索引查找 /  主键索引也是const
组合索引 表示
在全表扫描模式下,如果想达到索引效果,可以用limit 1; 如果只要求一条数据的话。limit 1 表示取得一条数据后就返回。
在 like 模式下, 如果 "%xx" 模式一般不走索引模式,因为前缀为% 表示一切皆有可能, 如果要走索引模式 必须为: “xx%”
reverse(列名) 也一样不走模式。除非是值 reverse(value)
对于比较运算符 来说 一般除了大于 和 不等于 不走索引外,其余的一般都走索引。
对于 or 运算符 ,只有 当or 两边的索引都是索引才走索引,否则不走。

转载于:https://www.cnblogs.com/dontgiveup/p/9380229.html

索引( index )相关推荐

  1. numpy使用np.argmax函数获取一维数组中最大值所在的索引(index of largest value in numpy array with np.argmax)

    numpy使用np.argmax函数获取一维数组中最大值所在的索引(index of largest value in numpy array with np.argmax) 目录 numpy使用np ...

  2. Python编程基础:第十九节 索引Index Operator

    第十九节 索引Index Operator 前言 实践 前言 我们在字符串学习过程中已经接触过索引的相关内容,我们在这里做一个小结,Python中的索引分为两部分,一种是从左向右,从0开始依次递增,例 ...

  3. Python索引index常用的8种操作

    原始数据为 csv 文件. data ''' date,temperature,humidity 07/01/21,95,50 07/02/21,94,55 07/03/21,94,56 ''' 一. ...

  4. es查询index生成时间_Elasticsearch开始的第一步索引index

    开始第一步 我们现在开始进行一个简单教程,它涵盖了一些基本的概念介绍,比如索引(indexing).搜索(search)以及聚合(aggregations).通过这个教程,我们可以让你对Elastic ...

  5. mysql general clomun_关于MySQL索引index杂谈

    MySQL建索引命令 create index index_name on tablename(clomun_name.....); 比如建了 CREATE INDEX  O_N_P_D  ON   ...

  6. MySQL笔记(五)索引 index

    这是我在学习Mysql之路上做的笔记,今天将它粘出来.这一篇主要是Mysq的l索引index.有错误的欢迎大家指出.. 数据库的创建参考我的另一篇博客 https://blog.csdn.net/cs ...

  7. check oracle 为空值_索引(index)-Oracle高级知识(3)-数据库(23)

    这篇文章是Oracle数据库的高级知识: 索引(index) 是非常重要的内容.知识点繁杂,靠理解.实战和笔记来熟练运用. 3 索引(Index) 3.1 什么是索引 在关系型数据库中,索引是一种单独 ...

  8. Elasticsearch生命周期ILM若干时间后自动删除索引index

    Elasticsearch生命周期ILM若干时间后自动删除索引index (1)先手动在 数据 - 索引生命周期策略 里面 创建策略,假设这个策略名字叫 my-demo-test-policy.注意把 ...

  9. elasticsearch定时删除过期索引index

    elasticsearch定时清理过期索引index 一.定时函数 二.获取过期时间 三.获取esClient 四.获取全部索引 五.判定索引是否过期 六.删除过期索引 七.demo代码 一.定时函数 ...

  10. SQL Server 索引(index) 和 视图(view) 的简单介绍和操作

    2019独角兽企业重金招聘Python工程师标准>>> --索引(index)和视图(view)-- --索引(index)-- --概述: 数据库中的索引类似于书籍的目录,他以指针 ...

最新文章

  1. js ajax调用请求
  2. 代码之谜(三)- 运算符
  3. 6.java 代码块
  4. PKM(个人知识管理)类软件收集(偶尔更新列表)
  5. 程序员最新研究发现【西安楼市 2011 低迷收场】
  6. 【Python】Pygame入门
  7. sftp api java_SFTP例子2----使用JSch实现SFTP文件传输
  8. python3爬取青年文摘999篇精选文章
  9. 完美解决Win8声卡爆音破音、卡顿
  10. 20. 顺时针打印矩阵
  11. maven中如何打jar包
  12. 关于extern的使用
  13. LintCode 148. 颜色分类 JavaScript算法
  14. html渐变生成,css gradient 在线渐变生成工具
  15. 小工具--理财计算器
  16. Ansible Inventory内置参数
  17. 突发公共卫生事件应急指挥及决策系统解决方案
  18. 【小睿精选·第四期】谷歌开源更快、更高效的 TensorFlow 运行时 TFRT
  19. c语言陶陶摘苹果数组,关于新手数组:样题:陶陶摘苹果
  20. 超级码力在线编程大赛初赛 第3场 1.最大公倍数

热门文章

  1. php sql注入判断,php防止sql注入漏洞过滤函数的代码
  2. linux刚重启就报资源不可用,linux系统重启网络配置
  3. 【图像超分辨率】Learning Texture Transformer Network for Image Super-Resolution
  4. 数学--数论--POJ 1061青蛙的约会 (扩展欧几里得算法)
  5. 关于SPFA Bellman-Ford Dijkstra Floyd BFS最短路的共同点与区别
  6. 疯子的算法总结(八) 最短路算法+模板
  7. windows与linux网络设置(host-only)
  8. TensorFlow(四)优化器函数Optimizer
  9. 数学建模算法:支持向量机_从零开始的算法:支持向量机
  10. vim的模式及常用命令