mysql的索引以及优化
本人qq群也有许多的技术文档,希望可以为你提供一些帮助(非技术的勿加)。
QQ群: 281442983 (点击链接加入群:http://jq.qq.com/?_wv=1027&k=29LoD19) QQ:1542385235
什么是索引:当你在字典中查找你的名字的时候,你有两种方式。第一、一页一页的翻,第二、通过拼音、笔画,等查找。那么第二种方式就是通过索引的方式查找。那么在myslq中数据库也是这么干的。索引可以增加查询速度,但是同时mysql维护索引也需要耗费性能。
索引的分类:
| 主键索引
如果一个字段为主键(primary key),则mysql会自动在该字段上建立主键索引
| 唯一索引
如果一个字段的值,在整张表中是唯一的,那么就可以在该字段上建立唯一索引,一旦通过唯一索引查找到了数据,就不需要继续查找了,因为它唯一的。它与主键索引的区别是主键索引必须建立在 主键上。
| 普通索引
如果在一个不是主键、其值不是唯一的字段上建立索引,则此类索引就是普通索引。
| 全文索引
如果在某个字段上建立了全文索引,则mysql会将该字段内的值,它认为是关键字的字眼抽取出来,然后对每个关键字建立索引,这就是全文索引。注意:全文索引需要myisam引擎支持。
| 复合索引
我们在建立索引的时候,可以针对多个字段,一起建立索引。当使用多个字段在一起建立索引时,此类索引为复合索引。
建立唯一索引或全文索引:
语法1: create [unique|fulltext] index index_name on table_name (table_ field);
例:地方在goods表的goods_name字段上建立了一个名为goods_name的普通索引。

建立普通索引或复合索引:
语法2:alter tabel table_name add index index_type index_name (field);
例:

查询索引:
语法:
1、show index from table_name;
2、show keys from table_name;
例:


删除索引:
语法1:drop index index_name on table_name;
例:

语法2:alter table table_name drop index index_name;
例:

测试索引效果:
语法:explain select语句;
例:
没有索引的情况:


有索引的情况:


select_type:查询类型,说明

Type:这是重要的列,显示连接使用了何种类型。从最好到最差的连接类型为 const、eq_reg、ref、range、index和ALL
本人qq群也有许多的技术文档,希望可以为你提供一些帮助(非技术的勿加)。
QQ群: 281442983 (点击链接加入群:http://jq.qq.com/?_wv=1027&k=29LoD19) QQ:1542385235
我的淘宝店,可以进去逛逛噢:https://shop108912636.taobao.com/index.htm?spm=2013.1.w5001-7867000954.3.1d29318dPlLar7&scene=taobao_shop
mysql的索引以及优化的更多相关文章
- MySQL函数索引及优化
很多开发人员在使用MySQL时经常会在部分列上进行函数计算等,导致无法走索引,在数据量大的时候,查询效率低下.针对此种情况本文从MySQL5.7 及MySQL8.0中分别进行不同方式的优化. 1. M ...
- 理解Mysql的索引与优化
转自:http://www.cnblogs.com/hustcat/archive/2009/10/28/1591648.html 写在前面:索引对查询的速度有着至关重要的影响,理解索引也是进行数据库 ...
- MySQL的索引与优化
写在前面:索引对查询的速度有着至关重要的影响,理解索引也是进行数据库性能调优的起点.考虑如下情况,假设数据库中一个表有10^6条记录,DBMS的页面大小为4K,并存储100条记录.如果没有索引,查询将 ...
- MySQL的索引及其优化
前言 索引对查询的速度有着至关重要的影响,理解索引也是进行数据库性能调优的起点.考虑如下情况,假设数据库中一个表有10^6条记录,DBMS的页面大小为4K,并存储100条记录.如果没有索引,查询将对整 ...
- mysql:联合索引及优化
命名规则:表名_字段名1.需要加索引的字段,要在where条件中2.数据量少的字段不需要加索引3.如果where条件中是OR关系,加索引不起作用4.符合最左原则 尽量不要用or,如果可以用union代 ...
- MySQL中索引和优化的用法总结
1.什么是数据库中的索引?索引有什么作用? 引入索引的目的是为了加快查询速度.如果数据量很大,大的查询要从硬盘加载数据到内存当中. 2.InnoDB中的索引原理是怎么样的? InnoDB是Mysql的 ...
- 【mysql】索引的优化
写在前面的话 查询容易,优化不易,且写且珍惜 mysql结构 从MySQL逻辑架构来看,MySQL有三层架构,第一层连接,第二层查询解析.分析.优化.视图.缓存,第三层,存储引擎 MySQL有哪些索引 ...
- Mysql常用索引及优化
索引是帮助我们快速获取数据的数据结构.索引是在存储引擎中实现的,因此不同存储引擎的索引也不同.这里只介绍InnoDB存储索引所支持的BTree索引: 一.索引类型 为了方便举例子,先创建表person ...
- Mysql的索引及优化
一:四种存储引擎: mysql使用 show engines查询其存储引擎: 功 能 MYISAM Memory InnoDB Archive 存储限制 256TB RAM 64TB None 支持 ...
随机推荐
- 设置了responseType:Blob之后,如果返回json错误信息,如果获取?
最近做了一个文件下载功能,于是设置了responseType: Blob的方式, 什么是Blob呢,MDN官方解释:Blob 对象表示一个不可变.原始数据的类文件对象.Blob 表示的不一定是Java ...
- JS获取URL中参数值
一.正则法: function getQueryString(name) { var reg = new RegExp('(^|&)' + name + '=([^&]*)(& ...
- vimiumC的下载、配置与节点个性化
vimium是chrome的一款扩展程序,正如其名:vim+chromium,它能让你在浏览网页时双手不离开键盘,是提上网高效率的神器. 最近在使用中,非常便捷高效,但关于节点的个性化资料比较少,自己 ...
- Spoj 2798 Qtree3
一棵结点为黑色或白色的树,初始都是白色的.有两种操作 1 将一个结点换颜色 2 询问从根到结点u路径上面的第一个黑色点,没有则输出-1 InputIn the first line there are ...
- R-CNN, Fast R-CNN, Faster R-CNN, Mask R-CNN
最近在看 Mask R-CNN, 这个分割算法是基于 Faster R-CNN 的,决定看一下这个 R-CNN 系列论文,好好理一下 R-CNN 2014 1. 论文 Rich feature hie ...
- pandas 数据排序.sort_index()和.sort_values()
原文链接:https://www.jianshu.com/p/f0ed06cd5003 import pandas as pd df = pd.DataFrame(……) 说明:以下“df”为Data ...
- 【Qt开发】QThread介绍
回顾Qt之线程(QThread),里面讲解了如何使用线程,但还有很多人留言没有看明白,那么今天我们来一起瞅瞅关于QThread管理线程的那些事儿... 一.线程管理 1.线程启动 void start ...
- Express中间件body-parser
在http请求种,POST.PUT.PATCH三种请求方法中包含着请求体,也就是所谓的request,在Nodejs原生的http模块中,请求体是要基于流的方式来接受和解析. body-parser是 ...
- sql limit order by and where
1 sql limit limit size,返回前size行. limit offset , size,返回offset开始的size行,offset从0行开始. 2 sql limit with ...
- MySQL总结(3)
ORDER BY 与 GROUP BY ORDER BY GROUP BY 排序产生的输出 分组行.但输出可能不是分组的顺序 不一定需要 如果与聚集函数一起使用列(或表达式)则必须使用 任意列都可以使 ...