mysql官方对索引的定义为:索引(index)是帮助mysql高效获取数据的数据结构。

在mysql数据库中,所有的数据类型都可以建立索引,对列使用索引主要是提高庞大数据量查询的效率。根据储存引擎可以定义每个表的最大索引和最大索引长度,每种储存引擎(例如InnoDB,MYISAM,MEMORY等引擎)对每个表至少支持16个索引,总索引长度至少为256字节。大多数储存引擎有更高的限制。

MYISAM和innoDB储存引擎的表默认创建的都是BTREE索引。mysql目前还不支持函数索引,但是支持前缀索引,即对索引字段的前N个字符创建索引。前缀索引的长度跟存储引擎相关,对于MYISAM存储引擎的表,索引的前缀长度可以达到1000字节长,而对于InnoDB储存引擎的表,索引的前缀长度是767字节。请注意前缀的限制应以字节为单位进行测量。而create table 语句中的前缀长度解释为字符数。在为使用多字节字符集的列指定前缀长度时一定要加以考虑。

mysql还支持全文本(fulltext)索引,该索引可以用于全文搜索。但是当前最新版本(5.0)中只有MYISAM存储引擎支持全文本索引,而且只限于char,varchar和text列。索引总是对整个列进行的,不支持局部(前缀)索引。

也可以为空间列类型创建索引,但是只有MYISAM存储引擎支持空间类型索引,且索引的字段必须是非空的。

默认情况下,MEMORY储存引擎使用hash索引,但也支持btree索引。

索引在创建表的时候可以同时创建,也可以随时增加新的索引,创建新的索引的语法为:

方式一:create [unique|fulltext|spatial] index 索引名 [using index_type] on 表名 (列名/字段名(length));

方式二:alter table 表名 add index 索引名(`字段名`(length));

详细内容:细说mysql索引

mysql----索引相关推荐

  1. mysql索引空间太大_MySQL优化索引

    1.  MySQL如何使用索引 索引用于快速查找具有特定列值的行.如果没有索引,MySQL必须从第一行开始,然后遍历整个表以找到相关的行.表越大,花费越多.如果表中有相关列的索引,MySQL可以快速确 ...

  2. mysql索引教程_MySQL教程96-MySQL索引类型

    索引的类型和存储引擎有关,每种存储引擎所支持的索引类型不一定完全相同.MySQL 索引可以从存储方式.逻辑角度和实际使用的角度来进行分类. 存储方式区分 根据存储方式的不同,MySQL 中常用的索引在 ...

  3. mysql 树形结构_再读MySQL索引-《高性能MySQL》索引手记

    最近工作中经常和MySQL打交道,当数据量小的时候,不同查询方式以及是否使用索引并无大碍,当数据量随着业务的成长急剧加速时,索引的重要性不言而喻. 本篇文章以<高性能MySQL>中的索引章 ...

  4. MySQL索引背后的数据结构及算法原理【转】

    http://blog.codinglabs.org/articles/theory-of-mysql-index.html MySQL索引背后的数据结构及算法原理[转] 摘要 本文以MySQL数据库 ...

  5. mysql 索引合并

    索引合并是mysql底层为我们提供的智能算法.本文就介绍了mysql 索引合并的使用,文中通过示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下 索引合并是mysql底层为我们提 ...

  6. mysql中groupby会用到索引吗_开发人员不得不知的MySQL索引和查询优化

    本文主要总结了工作中一些常用的操作及不合理的操作,在对慢查询进行优化时收集的一些有用的资料和信息,本文适合有 MySQL 基础的开发人员. 索引相关 索引基数 基数是数据列所包含的不同值的数量,例如, ...

  7. mysql索引底层实现原理_mysql的索引底层之实现原理

    MySQL索引背后的数据结构及算法原理 一.定义 索引定义:索引(Index)是帮助MySQL高效获取数据的数据结构. 本质:索引是数据结构. 二.B-Tree m阶B-Tree满足以下条件: 1.每 ...

  8. 不会MySQL索引,面试官让回家等通知!

    " 你是不是对于 MySQL 索引的知识点一直都像大杂烩,好像什么都知道,如果进行深究的话可能一个也答不上来. 假如你去面试,面试官让你聊一下对索引的理解,然而你对索引的理解仅限于,检索数据 ...

  9. ElasticSearch 索引 VS MySQL 索引

    前言 这段时间在维护产品的搜索功能,每次在管理台看到 elasticsearch 这么高效的查询效率我都很好奇他是如何做到的. 这甚至比在我本地使用 MySQL 通过主键的查询速度还快. 为此我搜索了 ...

  10. mysql索引排序算法_MySQL中利用索引对数据进行排序的基础教程

    MySQL中,有两种方式生成有序结果集:一是使用filesort,二是按索引顺序扫描.利用索引进行排序操作是非常快的,而且可以利用同一索引同时进行查找和排序操作.当索引的顺序与ORDER BY中的列顺 ...

最新文章

  1. Linux(centos6.0)下安装Node.js以及使用
  2. Cisco HSRP热备份路由器协议配置
  3. Struts的ONGL
  4. c++ 怎么读取rtf文件_最全集合!Word、PPT、Excel、PDF文件转换方法大全!建议收藏...
  5. Ubuntu配置jdk环境变量
  6. winform point数组带数值_带你学够浪:Go语言基础系列 - 8分钟学复合类型
  7. VS2017调试时如何查看内存
  8. 文件服务器的配置与管理(2) 实现软RAID
  9. springboot工程中使用spring.version导致无法启动
  10. UIAlertController的使用及其自定义
  11. C语言实现希尔排序shell sort算法之一(附完整源码)
  12. Git入门之上传本地项目至Github(一)
  13. 诺基亚9.3再曝光:后置1亿像素圆形五摄 价格或超6000元
  14. Linux事件驱动网络编程,Linux系统编程之事件驱动
  15. 惊悚游戏《寂静岭》厕所3D场景模型制作分享
  16. 使用R语言 在rstudio中出现 列的数目比列的名字要多 的问题
  17. 生成函数入门及应用 生成函数
  18. 悟空榜+直播,苏宁618开启数字化零售新玩法
  19. linux 分区数据恢复
  20. ubuntu apt安装java_Ubuntu 16.04 apt方式安装JDK并且配置Java开发环境详解

热门文章

  1. 如何在Node.js上的Express.js中获取GET(查询字符串)变量?
  2. SpringBoot解决jpa,NoSession问题
  3. c++ string 长度限制_面试中要会的String相关问题
  4. Android 8.0系统源码分析--开篇
  5. redis深度历险:核心原理与应用实践_送你一份Redis书单,以后使用缓存的问题不用再问我啦!...
  6. 通过源码理解反射与注解是什么东西?
  7. Continue(Java)
  8. HoloLens1开发(二):结合Vuforia开发
  9. opencv之CmakeLists.txt配置
  10. 拳魂觉醒服务器维护怎么办,拳魂觉醒 哪些不为人知的的小秘密