MySQL中的索引


一、索引


在关系型数据库中,索引是一种单独的、物理的对数据库表中一列或多列的值进行排序的一种存储结构,它是某个表中一列或若干列值的集合和相应的指向表中物理标识这些值的数据页的逻辑指针清单。索引的作用相当于图书的目录,可以根据目录中的页码快速找到所需的内容。

索引提供对表中行的直接和快速访问,它的目的是用已索引的路径快速定位数据以减少磁盘 I/O。索引逻辑地和物理地独立于他们索引的表,这意味者索引可以在任何时候被创建或删除,并且不影响基表或其它的索引。当删除表时,相应的索引也被删除。

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


二、MySQL中的索引类型


普通索引

唯一索引

主键索引

组合索引

全文索引


三、如何查询索引


show index from 表名


四、普通索引


最基本的索引,它没有任何限制。

在创建索引时,可以指定索引长度。Length为可选参数,表示索引的长度,只有字符串类型的字段才能指定索引长度,如果是blob和text类型,必须指定length;

创建索引时需要注意

如果指定单列索引长度,length必须小于这个字段所允许的最大字符个数;


五、如何创建普通索引


直接创建索引

Create index 索引名 on 表名(列名(长度))


为 emp3 表中的 name 创建一个索引,索引名为 emp3_name_index;

Create index emp3_name_index on emp3(name);验证:查看索引;
Show index from emp3;

修改表添加索引

Alter table 表名 add index 索引名(列名(长度))


修改 emp3 表,为 addrees 列添加索引,索引名为 emp3_address_index

Alter table emp3 add index emp3_address_index(address);验证:查看索引;
Show index from emp3;

创建表时指定索引列

Create table 表名(列名 类型 , index 索引名(列名(长度)))


创建 emp4 表,包含 emp_id,name,address 列,同时为 name列创建索引。索引名为emp4_name_index;

Create table emp4(emp_id int primary key auto_increment , name   varchar(30) , address varchar(50) , index emp4_name_index(name));验证:查看索引;
Show index from emp4

六、如果删除索引


drop index 索引名 on 表名


删除 mep3 表中索引名为 emp3_address_index 的索引

Drop index emp3_address_index on emp3;验证:查询索引
Show index from emp3;

MySQL中的索引(普通索引篇)相关推荐

  1. Mysql 索引 总结 —— 概述 || 索引优势劣势|| 索引结构(索引是在MySQL的存储引擎层中实现的)|| BTREE 结构||B+TREE 结构||MySQL中的B+Tree||索引分类

    索引概述 MySQL官方对索引的定义为:索引(index)是帮助MySQL高效获取数据的数据结构(有序). 在数据之外,数据库系统还维护者满足特定查找算法的数据结构, 这些数据结构以某种方式引用(指向 ...

  2. mysql中b树索引_Mongo和Mysql中的B树索引

    为什么Mysql中Innodb的索引结构采取B+树? 回答这个问题时,给自己留一条后路,不要把B树喷的一文不值.因为网上有些答案是说,B树不适合做文件存储系统的索引结构.如果按照那种答法,自己就给自己 ...

  3. mysql 创建表格time类型_记一次关于 Mysql 中 text 类型和索引问题引起的慢查询的定位及优化...

    最近有用户反馈产品有些页面加载比较慢,刚好我在学习 Mysql 相关知识,所以先从 Mysql 慢查询日志开始定位: step1:通过慢查询日志定位具体 SQL 首先通过 SHOW VARIABLES ...

  4. MySQL中InnoDB引擎对索引的扩展

    摘要:InnoDB引擎对索引的扩展,自动追加主键值及其对执行计划的影响. MySQL中,使用InnoDB引擎的每个表,创建的普通索引(即非主键索引),都会同时保存主键的值. 比如语句 CREATE T ...

  5. mysql中的强制索引_你如何强制MySQL中的查询使用索引?

    我试图通过向慢查询日志中出现的查询添加索引来提高锤击的wordpress DB的性能. 在MS SQL中,您可以使用查询提示强制查询使用索引,但如果正确覆盖列,则通常很容易获得查询以使用索引. 我有这 ...

  6. mysql中创建视图、索引

    数据库的三级模式两级映射: 存储文件------>基本表----->视图 内模式   ------->模式   ------>外模式 一.视图 1.什么是视图: 视图是从一个或 ...

  7. Mysql中到底什么是索引下推,一分钟看懂

    索引条件下推(Index Condition Pushdown),简称ICP.MySQL5.6新添加,用于优化数据的查询. 理论 索引下推简单来说就是把索引当中的所有数据全部用到减少回表的次数 假如现 ...

  8. MySQL中的事物、索引、视图、触发器

    事物 定义:事务是由一组DML语句组成,完成一个相对完整的功能,这一组DML语句要么全部执行,要么全部放弃执行. 格式: start transaction 或者 begin 开启事务 commit ...

  9. MySQL中的存储过程(详细篇)

    文章目录 概述 优点 缺点 MySQL存储过程的定义 存储过程的基本语句格式 存储过程的使用 定义一个存储过程 定义一个有参数的存储过程 定义一个流程控制语句 IF ELSE 定义一个条件控制语句 C ...

  10. mysql索引 asc_谈谈MySQL中的降序索引 order by id DESC / ASC

    今天这篇主要讲order by 语句中的多个字段asc desc的问题.mysql5中,索引存储的排序方式是ASC的,没有DESC的索引.现在能够理解为啥order by 默认是按照ASC来排序的了吧 ...

最新文章

  1. 皮一皮:中国男足啊..这球少一个人帮忙这球都进不了...
  2. Spring 框架核心概念IoC 随笔
  3. jar包部署到window系统服务器的办法
  4. es-head 删除INDEX 创建mapping
  5. Mac终端编c语言,【新手提问】有知道用mac终端编c语言的网络编程的人吗?
  6. java游戏有个按技能是旋风_快打旋风加难技能增强版
  7. 江西理工大学c语言考试题库,江西理工大学C语言程序设计竞赛(初级组)(示例代码)...
  8. php try 错误_PHP异常和错误(2)异常的基本处理:try
  9. spark streaming之 windowDuration、slideDuration、batchDuration​
  10. Scikit-Learn (1.Sklearn提供的常用数据集 - 自带的小数据集)
  11. Android反编译工具
  12. Cannot access a disposed object. A common cause of this error is disposing a context that was resolv
  13. 微信小程序登陆流程踩坑
  14. jsLint 检查分析
  15. 转载:日本动漫发展史(新浪网)
  16. OPENWRT-LUCI开发总结-LUCI目录结构介绍
  17. 区块链溯源是什么?一文带您读懂! 1
  18. 前后端交互:form表单与模板引擎
  19. 话费充值 php,首信易支付,电话费充值接口
  20. 用Python实现目录遍历及文件搜索

热门文章

  1. MonogoDb学习笔记
  2. CentOS7修改默认运行级别
  3. 【Eclipse】eclipse che 协作开发
  4. Python基础教程【读书笔记】 - 2016/7/5
  5. LeetCode11:Container With Most Water
  6. 在AFN中使用NSXMLParser解析服务器返回的XML数据
  7. socket通信(5)4次挥手
  8. (chap5 web服务器) 数据转发之“代理”
  9. 《研磨设计模式》chap20 享元模式 Flyweight (1)前奏介绍
  10. C++ Primer 5th笔记(10)chapter10 泛型算法 :泛型算法结构