索引

ibear 2020-04-09 原文

索引

1、什么是索引?有什么用?

索引相当于一本书的目录,通过索引可以快速的查找到相应的资源,缩小查找的范围

在数据库通过表查询数据方面,一般有两种方式:

  (1)第一:全表扫描所有的数据

  (2)第二:通过索引进行查找

注意:索引虽然可以提高检索效率,但是不能随便添加索引,因为索引也是数据库当中的对象,也需要数据库不断地维护。是有维护成本的。

      比如表中的数据经常被修改就不适合添加索引,因为数据一旦被修改,索引需要重新排序

 

2、什么时候给字段添加索引?(满足什么条件)

2.1注意:添加索引一般是给某个字段或者一些字段添加索引

 

 2.2添加原则:(1)该字段数据量庞大

        (2)该字段很少出现DML操作(insert、delete、update操作时索引也要进行排序)

        (3)该字段一般出现在where子句后

  注意:设置为主键(primary key)、unique关键字的字段会自动添加索引

 

3、查看sql语句的执行计划

   explain select * from tablename where + 条件;

 

3.1我们通过id和name字段分别查看sql执行计划,因为id字段我们设置为primary key 检索时自动通过索引只查找,只查找一行,而通过name查找的需要扫描8行

 

 

 3.2 给字段添加索引

  create index tablename_字段名_index on tablename(字段名)

     create index t_user_name_index on t_user(name)

删除索引:

   drop  index tablename_字段名_index on tablename;

   drop  index t_user_name_index on t_user;

 a.未加索引时sql语句查询时的执行计划:

 

 

  b.添加索引后sql语句查询时的执行计划:

 

 

3.3索引的硬盘映射机制原理:

 

 

 

 

4、索引失效

当使用模糊查询时,第一个为%时为失效。

4.1总表数据:

 

 

4.2加入模糊查询:

 

 总结:尽量不要使用模糊查询会影响查询效率

发表于
2020-04-09 21:20 
一只懒懒的熊Zz 
阅读(
评论(
编辑 
收藏

 

版权声明:本文为ibear原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://www.cnblogs.com/ibear/p/12669647.html

索引的更多相关文章

  1. sql语句增加字段 索引

     alter table order_info add area varchar(50)     create […]...

  2. SQL Server之索引解析(二)

    SQL Server之索引解析(二) 1、堆表 堆表通过IAM连接一起,查询时全表扫描。 1、1 非聚集索引 […]...

  3. 数据库索引创建与优化

           对于数据库的优化主要包括三个部分:查询优化、索引优化和字段类型优化,其中,索引优化则是数据库优化 […]...

  4. 聊聊Mysql优化之索引优化

    索引是存储引擎用于快速找到记录的一种数据结构。尤其是当表的数据量越来越大的时候,正确的索引对查询性能的提升尤为 […]...

  5. SQL Server之索引解析(一)

    SQL Server之索引解析(一) 1、写在前面 微软专门给出SQL Server设计思路及实现路线,从7大 […]...

  6. MySQL索引篇之索引存储模型

    MySQL索引篇之索引存储模型   本文重点介绍下索引的存储模型 二分查找   给定一个1~100的自然数,给 […]...

  7. MySQL全面瓦解22:索引的介绍和原理分析

    索引的定义 MySQL官方对索引的定义为:索引(Index)是协助MySQL高效获取数据的数据结构。 本质上, […]...

  8. 查看Oracle当前用户下的信息(用户,表视图,索引,表空间,同义词等)

      0、表空间   SQL>select username,default_tablespace fro […]...

随机推荐

  1. 【宝塔面板】centOS部署前后端分离所有遇到的坑,Django

    【宝塔面板】centOS部署前后端分离所有遇到的坑,Django 1:刚刚买完服务器,在宝塔面板安装完一切工具 […]...

  2. 巧求三点外接圆圆心 – 码农之上~

    巧求三点外接圆圆心 适用于代码实现的三角形外接圆圆心坐标算法。 转自:       图1:          […]...

  3. Python和Java哪个更适合做自动化测试?

    Python:易于学习,语法简洁 不可否认的是,Python相对于其他语言来说,要容易的多。因为Python语 […]...

  4. js concat 方法(字符串拼接,数组拼接)

    js 字符串和数据均有concat方法 ①,字符串 concat 方法 字符串 concat 方法用于连接两个 […]...

  5. ASP.NET三剑客 HttpApplication HttpModule HttpHandler 解析

    我们都知道,ASP.Net运行时环境中处理请求是通过一系列对象来完成的,包含HttpApplication,H […]...

  6. 证明组合递推公式 – 海胖子

    证明组合递推公式 证明组合的递推公式 C(n,m)=C(n-1,m-1)+C(n-1,m)   1.将C(n, […]...

  7. [bug] Junit initializationError

    原因 导包错误   解决 先删除 import org.junit.Test; 再导入正确的包   参考 ht […]...

  8. Vue2.0搭建脚手架流程

    介绍 Vue.js是一套构建用户界面的渐进式框架。Vue 只关注视图层,采用自底向上增量开发的设计。Vue 的 […]...

展开目录

目录导航