mysql,简单介绍一下索引
汉字很多,人力有时尽,人不可能记住所有的字,为了解决这个问题,于是有了字典。数据库里的数据很多,为了方便检索,于是有了索引。
索引,是一种数据结构,在这种数据结构中实现了高级的查找算法,索引可以帮助我们高效地获取数据,提高查询效率。
既然索引有这样的好处,那我们是不是每个字段都该建立索引呢?
当然是不,物极必反,索引是需要占用空间的,而且索引本身也不小,不能存储在内存空间,是存放在磁盘中的。
如果每个字段都建立索引,后果可想而知。
讨论索引的时候,如果没有特别的指明类型,一般都是B树索引。BTree索引可以查阅相关资料了解下,不赘述了。
除了B树索引,另外还有哈希索引等。
索引有哪些分类?
1.单值索引
单值索引是指一个索引只包含一个字段,一个表可以创建多个单值索引,但也不宜过多。
2.唯一索引
主键创建后一定包含一个唯一索引;但唯一索引不一定是主键,允许有空值,一个表可以创建多个唯一索引。
3.复合索引
需要注意的是:复合索引是有顺序的! 举例说明一下。
例如,user表里有id,name,sex三个字段,并且我们创建了name+sex的复合字段。
select * from user where name=x and sex=x;
这个情况是允许使用上面的复合索引的。 select * from user where name=x;
这个情况也是允许使用上面的复合索引的。 select * from user where sex=x and name=x;
这种情况不允许使用,复合索引有顺序就是指这个意思。 select * from user where sex=x;
这种情况也不允许使用索引哦。
复合索引是遵循向左原则的,只要在查询的时候,是按照复合索引从左到右的顺序依次查询
选择哪些列创建索引?
不走索引的情况
mysql,简单介绍一下索引的更多相关文章
- mysql简单介绍及安装
MySQL是一个关系型数据库管理系统关系数据库,将数据保存在不同的表中,而不是将所有数据放在一个大仓库内,这样就增加了速度并提高了灵活性,所使用的 SQL 语言是用于访问数据库的最常用标准化语言.My ...
- mysql 简单介绍
mysql 不允许修改数据库名,一些客户端可以变通的方式来修改数据库名称 mysql 1064错误,语法错误 更改表名: rename table jian to song; 删除表 drop tab ...
- mysql简单介绍
SQL语言分为三个部分:数据定义语言( Data DefinitionLanguage,简称为DDL).数据操作语言( DataManipulation Language,简称为DML)和数据控制语言 ...
- python(pymysql)之mysql简单操作
一.mysql简单介绍 说到数据库,我们大多想到的是关系型数据库,比如mysql.oracle.sqlserver等等,这些数据库软件在windows上安装都非常的方便,在Linux上如果要安装数据库 ...
- Mysql索引优化简单介绍
一.关于MySQL联合索引 总结记录一下关于在MySQL中使用联合索引的注意事项. 如:索引包含表中每一行的last_name.first_name和dob列,即key(last_name, firs ...
- MySQL存储引擎简单介绍
MySQL使用的是插件式存储引擎. 主要包含存储引擎有:MyISAM,Innodb,NDB Cluster,Maria.Falcon,Memory,Archive.Merge.Federated. 当 ...
- MySQL sys Schema 简单介绍-2
之前在<MySQL sys Schema 简单介绍-1>中简单的介绍了,sys Schema库中的表.那么这些表都可以查询些什么信息呢?接下来本文将做下介绍. 1. 表的情况 1.1 统计 ...
- PHP 17: MySQL的简单介绍
原文:PHP 17: MySQL的简单介绍 这一章将简单介绍MySQL的基本知识. 本文来自http://lib.hackbase.com/html/8/35125.htm. MySQL是最受欢迎的开 ...
- mysql中set和enum使用(简单介绍)
简单介绍 SET类型 在创建表时,就指定SET类型的取值范围. 属性名 SET('值1','值2','值3'...,'值n') 其中,“属性名”参数指字段的名称:“值n”参数表示列表中的第n个值,这些 ...
随机推荐
- OCP2018最新题库,052新题库及答案整理-25题
25.Which is true about logical and physical database structures? (Choose the best answer) A. An undo ...
- “全栈2019”Java第六十九章:内部类访问外部类成员详解
难度 初级 学习时间 10分钟 适合人群 零基础 开发语言 Java 开发环境 JDK v11 IntelliJ IDEA v2018.3 文章原文链接 "全栈2019"Java第 ...
- [ActionSprit 3.0] FMS接收正在播放的视频中嵌入的描述性信息(onMetaData事件)
package { import flash.display.MovieClip; import flash.net.NetConnection; import flash.events.NetSta ...
- uC/OS-II 函数之时间相关函数
获得更多资料欢迎进入我的网站或者 csdn或者博客园 对于有热心的小伙伴在微博上私信我,说我的uC/OS-II 一些函数简介篇幅有些过于长应该分开介绍.应小伙伴的要求,特此将文章分开进行讲解.上文主要 ...
- python 强大的工具
numpy Python科学计算的基础包 安装工具 pip3 install numpy pandas包含了高级的数据结构和操作工具,它们使得Python数据分析更加快速和容易. 安装工具 pip3 ...
- virsh 连接虚拟机 (vnc 或 控制台)
第一种方式 1.如果虚拟机登录方式为VNC,在ubuntu机器上安装vncviewer 在虚拟机的配置xml中 <graphics type="vnc" autoport=& ...
- 将SQLAlchemy对象转化为dict
需求一,将数据对象转为dict,但是不包括relation, import BaseClass #所有模型的基础类 def getDictFromObj_nr(obj): return_dict={} ...
- 06. 用css实现三角形
用css实现三角形 <!DOCTYPE html> <html lang="en"> <head> <meta charset=&qu ...
- [HDU4089]Activation(概率DP)
HDU4089 题意:有n个人排队等着在官网上激活游戏.Tomato排在第m个. 对于队列中的第一个人.有一下情况: 1.激活失败,留在队列中等待下一次激活(概率为p1) 2.失去连接,出队列,然后排 ...
- MIUI7系统如何刷入开发版启用root超级权限
小米的手机或平板不同手机型号通常情况MIUI官方论坛都提供两个不同系统,大概可分为稳定版和开发版,稳定版没有提供root权限管理,开发版中就开启了root权限,很多情况我们需要使用的一些功能强大的AP ...