MySQL索引的建立对于MySQL的高效运行是很重要的,索引可以大大提高MySQL的检索速度。

可以把索引看作是汉语字典的目录页,我们可以按拼音、笔画、偏旁部首等排序的目录(索引)快速查找到需要的字。

索引分单列索引和组合索引。单列索引,即一个索引只包含单个列,一个表可以有多个单列索引,但这不是组合索引。组合索引,即一个索引包含多个列。

创建索引时,你需要确保该索引是应用在 SQL 查询语句的条件(一般作为 WHERE 子句的条件)。

实际上,索引也是一张表,该表保存了主键与索引字段,并指向实体表的记录。

上面都在说使用索引的好处,但过多的使用索引将会造成滥用。因此索引也会有它的缺点:虽然索引大大提高了查询速度,同时却会降低更新表的速度,如对表进行INSERT、UPDATE和DELETE。因为更新表时,MySQL不仅要保存数据,还要保存一下索引文件。

建立索引会占用磁盘空间的索引文件。

索引注意事项

1.经常出现在where条件中的字段添加索引;

2.数据量少的表不需要加索引;

3.如果where条件中是OR的关系,联合索引不起作用;

4.联合索引符合最左原则

联合索引又称复合索引,对于联合索引,mysql从左到右使用索引中的字段,一个查询可以使用索引的一部分,但是必须满足左侧部分。例如索引是key index (a,b,c). 可以支持a | a,b| a,b,c 3种组合进行查找,但不支持 b,c进行查找 .当最左侧字段是常量引用时,索引就十分有效。

普通索引

创建索引

这是最基本的索引,它没有任何限制。它有以下几种创建方式:

CREATE INDEX index_name ON table_name (column_name(length));

如果是CHAR,VARCHAR类型,length可以小于字段实际长度;如果是BLOB和TEXT类型,必须指定 length。

修改表结构(添加索引)

ALTER tabletable_name ADD INDEX index_name(column_name);

创建表的时候直接指定

CREATE TABLEtable_name(

IDINT NOT NULL,

usernameVARCHAR(16) NOT NULL,INDEXindex_name (username(length))

);

删除索引的语法

DROP INDEX index_name ON table_name;

唯一索引

它与前面的普通索引类似,不同的就是:索引列的值必须唯一,但允许有空值。如果是组合索引,则列值的组合必须唯一。它有以下几种创建方式:

创建索引

CREATE UNIQUE INDEX index_name ON table_name(column_name(length));

修改表结构

ALTER table table_name ADD UNIQUE index_name (column_name(length));

创建表的时候直接指定

CREATE TABLEtable_name(

IDINT NOT NULL,

usernameVARCHAR(16) NOT NULL,UNIQUE index_name(username(length))

);

查询索引信息

可以使用 SHOW INDEX 命令来列出表中的相关的索引信息。

SHOW INDEX FROM table_name;

mysql索引红黑联盟_MySQL索引相关推荐

  1. 我就纳闷了。。。红黑联盟。。的水印真的好明显,欺负我大csdn

    红黑联盟的人为毛老转载我的原创文章,而且还不标明出处... 还有其他的我就不说了.. 看看下面这张图: 有多可怜: 里面我的csdn是最不明显的....郁闷啊郁闷..    哎,也没什么了, 就那么回 ...

  2. it技术 学习资料库 红黑联盟:

    http://www.xuexi111.com/book/jisuanji/68383.html 红黑联盟: android教程_android高级教程_android教程 pdf_android开发 ...

  3. mysql是如何管理数据结构_MySQL索引背后的数据结构和原理

    这是我看到的一篇博客,讲得非常详细,分享给大家:http://blog.codinglabs.org/articles/theory-of-mysql-index.html Abstract: 本文以 ...

  4. mysql索引背后的数据结构_MySQL索引背后的数据结构及算法原理

    摘要 本文以MySQL数据库为研究对象,讨论与数据库索引相关的一些话题.特别需要说明的是,MySQL支持诸多存储引擎,而各种存储引擎 对索引的支持也各不相同,因此MySQL数据库支持多种索引类型,如B ...

  5. mysql更新索引不影响业务_mysql索引更新要多久

    MySQL索引的建立对于MySQL的高效运行是很重要的,索引可以大大提高MySQL的检索速度. 打个比方,如果合理的设计且使用索引的MySQL是一辆兰博基尼的话,那么没有设计和使用索引的MySQL就是 ...

  6. mysql索引4种结构_mysql索引:四种类型,两种方法

    1. 普通索引:最基本的索引,它没有任何限制,用于加速查询. 2. 唯一索引unique:索引列的值必须唯一,但允许有空值.如果是组合索引,则列值的组合必须唯一. 3. 主键索引: 是一种特殊的唯一索 ...

  7. mysql索引查2遍_mysql索引优化查询

    一:mysql的引擎简介. 1.ISAM:查找速度快,不支持事物,如果硬盘崩溃则无法恢复. 2.MyISAM:是ISAM的扩展,在web中用的很多,读取速度快,,不支持事物. 3.InnoDB:Inn ...

  8. mysql用索性的好处_MySql索引的优缺点

    优点 有了索引.对于记录数量很多的表,可以提高查询速度. 缺点 索引是占用空间的. 索引会影响update insert delete速度 ALERT!!! 1.索引要创建在where和join用到的 ...

  9. mysql索引分析和优化_MySQL索引分析和优化

    什么是索引? 索 引用来快速地寻找那些具有特定值的记录,所有MySQL索引都以B-树的形式保存.如果没有索引,执行查询时MySQL必须从第一个记录开始扫描整个表的 所有记录,直至找到符合要求的记录.表 ...

最新文章

  1. c++中的public,protected,private
  2. 你需要知道的20个常用的Python技巧
  3. 最近火爆全网!这个 Python 项目很骚气!
  4. DinnerNow - 如何安装部署
  5. DL之Yolov3:基于深度学习Yolov3算法实现视频目标检测之对《俄罗斯总统普京对沙特王储摊的“友好摊手”瞬间—东道主俄罗斯5-0完胜沙特》视频段实时检测
  6. MyBatisPlus注入公共Sql问题
  7. 关于c#中全局类变量的建立
  8. 调整步长支持跨数据库的ID唯一性弊端
  9. [渝粤教育] 重庆工程职业技术学院 Linux服务器配置与管理(唐宏) 参考 资料
  10. Java基础系列--static关键字
  11. Kafka+Spark Streaming+Redis实时系统实践
  12. 修改Win7的默认文件夹排列方式
  13. 基于EEGLAB的脑电数据预处理
  14. linux core文件调试,Linux程序调试助手–core,解决段错误!
  15. 概率论总结(五):极限理论之大数定律、中心极限定理、概率收敛
  16. Android打造流畅九宫格抽奖
  17. rtx3060ti参数配置
  18. linux系统 ubuntu20.04 qq安装 闪退解决办法
  19. 计算机ppt制作培训心得,中小学电脑制作活动培训心得体会范文
  20. CSS 限制文本显示行数

热门文章

  1. C/Cpp / 模板类中可以使用虚函数吗?模板成员函数可以是虚函数吗?
  2. 初识python评课稿_开平方函数 python
  3. 平板电脑显示服务器繁忙,微信公众平台微信保护-微信公众平台登陆系统繁忙是什么原因登陆的时候有个微信扫描认证?微 爱问知识人...
  4. 倒计时或按任意键返回首页_超实用excel小技巧之时间倒计时及动态显示
  5. P3834 【模板】可持久化线段树 1(主席树)
  6. 爬取虎扑NBA首页主干道推荐贴的一只小爬虫,日常爬不冷笑话解闷
  7. 【JavaScript基础系列】决定你的人生能走多远的,是基础。
  8. 利用mvc 模型绑定验证方法验证普通类对象数据是否合法
  9. 23.IntelliJ IDEA 常用设置-1
  10. .Net Core 定时任务TimeJob