首页 > 数据库 >MySQL索引

MySQL索引

时间:2022-11-29 21:14:07浏览次数:39  
标签:name 查询 索引 key MySQL 数据 节点

索引相关概念

1.索引就好比一本书的目录,它能让你更快的找到自己想要的内容
2.让获取的数据更有目的性,从而提高数据库检索数据的性能

索引在MySQL中也叫做“键”,是存储引擎用于快速找到记录的一种数据结构
	primary key
	unique key
	index key
1.上述的三个key都可以加快数据查询
2.primary key和unique key除了可以加快查询本身还自带限制条件而index key很单一就是用来加快数据查询
3.外键不属于索引键的范围 是用来建立关系的 与加快查询无关

索引加快查询的本质
	id int primary key auto_increment,
 	name varchar(32) unique,
  	province varchar(32)
 	age int
 	phone bigint
 	
	select name from userinfo where phone=18818888888;  # 一页页的翻
	select name from userinfo where id=99999;  # 按照目录确定页数找

索引可以加快数据查询 但是会降低增删的速度
通常情况下我们频繁使用某些字段查询数据
	为了提升查询的速度可以将该字段建立索引
    
聚集索引(primary key)
	主键、主键索引
辅助索引(unique,index)
	除主键以外的都是辅助索引
覆盖索引
	select name from user where name='jason';
非覆盖索引
	select age from user where name='jason';

索引数据结构

索引底层其实是树结构>>>:树是计算机底层的数据结构
 
树有很多中类型
	二叉树、b树、b+树、B*树......

二叉树
	二叉树里面还可以细分成很多领域 我们简单的了解即可 
  	二叉意味着每个节点最大只能分两个子节点
B树
	所有的节点都可以存放完整的数据
B+\*树
	只有叶子节点才会存放真正的数据 其他节点只存放索引数据
 	B+叶子节点增加了指向其他叶子节点的指针
  	B*叶子节点和枝节点都有指向其他节点的指针

辅助索引在查询数据的时候最会还是需要借助于聚集索引
	辅助索引叶子节点存放的是数据的主键值

有时候就算采用索引字段查询数据 也可能不会走索引!!!
	最好能记三个左右的特殊情况

慢查询优化

慢查询的优化我们可以直接使用explain
慢查询等级
    1.index		尽量避免
    2.range		
    3.ref
    4.eq_ref
    5.const
    6.system
    7.null

标签:name,查询,索引,key,MySQL,数据,节点
From: https://www.cnblogs.com/zyg111/p/16936709.html

相关文章

  • MySQL数据库基础6
    今日内容概要SQL注入问题视图触发器事务存储过程函数流程控制索引相关概念索引数据结构慢查询优化今日内容详细SQL注入问题用python编写简易的基于数据库的......
  • MySQL 6
    今日内容详细SQL注入问题怪像1:输对用户名就可以登录成功怪像2:不需要对的用户名和密码也可以登录成功SQL注入:利用特殊符合的组合产生特殊的含义从而避开正常的业务......
  • MySQL设置事务自动提交
    MySQL默认开启事务自动提交模式,即除非显式的开启事务(BEGIN或STARTTRANSACTION),否则每条SOL语句都会被当做一个单独的事务自动执行。但有些情况下,我们需要关闭事务自动......
  • sql注入、事物、索引、流程控制
    目录SQL注入问题视图触发器事务存储过程函数流程控制索引相关概念索引数据结构慢查询优化测试索引联合索引全文检索插入数据更新数据删除数据主键外键重命名表事务安全管理......
  • 视图,触发器,存储过程,流程控制等MySQL小知识点
    视图,触发器,存储过程,流程控制等MySQL小知识点一、SQL注入问题登录:importpymysqlconn=pymysql.connect(host='127.0.0.1',port=3306,user='root',......
  • SQL注入问题,视图,触发器,存储过程,流程控制,内置函数,索引与慢查询
    目录SQL注入问题,视图,触发器,存储过程,流程控制,内置函数,索引与慢查询今日内容详细SQL注入问题视图触发器事务存储过程函数流程控制索引相关概念索引数据结构慢查询优化SQL注......
  • MYSQL
    SQL注入问题#1.关于sql的注入问题:"""利用特殊符号的组合产生特殊的含义,改变正确的业务逻辑"""1.select*fromuserinfowherename='jason'--kasfsdf'and......
  • SQL注入问题、视图、触发器、事务、存储过程、函数、流程控制、索引、慢查询、数据库
    SQL注入问题怪象一:输对用户名就可以登录怪象二:不需要输对用户名跟密码也可以登录原因:SQL注入:利用特殊符合的组合产生特殊的含义从而避开正常的业务逻辑(--会......
  • WGCLOUD - 如何实现监测mysql主从节点同步状态是否正常
    WGCLOUD的自定义监控项,可以执行一些我们自定义的指令或脚本,非常灵活本文我们尝试使用此功能来监测我们的mysql从节点是否在正常工作,如果如下两项值都为yes,那么slave节点是......
  • 联合索引最左匹配原则
    建表语句:CREATETABLE`user`(`id`bigint(20)NOTNULLAUTO_INCREMENTCOMMENT'主键',`name`varchar(30)DEFAULTNULLCOMMENT'名称',`sex`varchar(1)......