当前位置: 首页 > wzjs >正文

互动创意网站建站宝盒如何使用

互动创意网站,建站宝盒如何使用,php网站建设安装环境,制作网页教学反思文章目录 🌏索引(上)回顾🌏使用索引🪐自动创建索引🪐手动创建索引🚀主键索引🚀普通索引🚀唯一索引🚀复合索引 🪐查看索引🪐删除索引🚀删除主键索引…

文章目录

  • 🌏索引(上)回顾
  • 🌏使用索引
    • 🪐自动创建索引
    • 🪐手动创建索引
      • 🚀主键索引
      • 🚀普通索引
      • 🚀唯一索引
      • 🚀复合索引
    • 🪐查看索引
    • 🪐删除索引
      • 🚀删除主键索引
      • 🚀删除其他索引
  • 🌏查看执行计划

🌏索引(上)回顾

  1. MySQL选择使用B+树这种数据结构进行索引

可以有效的控制树高
非叶子节点仅具有索引功能,叶子结点保存真实数据
所有叶子结点构成一个有序链表 实现范围查找

  1. B+树与B树对比

叶子结点中的数据连续,相互连接,便于区间查找和搜索
非叶子结点的值都包含在叶子结点中
树高相同的情况下,查找任一元素时间复杂度都一样,性能均衡

  1. 页是内存与磁盘交互的最小单元,默认大小为16KB

读取数据时,不是单单读取一条数据,而是读取一整页查遍历到相应的数据行
空间不够了 InooDB会提前申请好一页的空间,所以页的磁盘空间是连续的,便于数据的遍历

  1. B+树在MySQL索引中的应用
    在这里插入图片描述

比如查找id 为 6的数据行

现在遍历槽1 通过槽拿到主键值进行判断, 能看到图中槽1的主键值是4 5 > 4 就到槽2中遍历
槽2 中存在主键值为6 的值
先比对槽中记录的主键值,定位到最后⼀个槽2,再从最后⼀个槽中的第⼀条记录遍历,第⼆条记录就是我们要查询的目标行

想要查询页里面的内容,先将页加载到内存,根节点一页,二级节点一页,叶子结点的数据页也是一页,所以说通过三次IO就可以把我们想要的数据找到 --三层树高的B+树

  1. 三层树高的B+树可以存多少记录

一个数据页默认为16KB。假设一条数据为1KB,一页中至多可以存16条数据
索引页中存的是主键值和子节点的引用,也就是说下一个节点的偏移(地址)
主键 bigint类型 占8Byte 下一页地址 6Byte 也就是说一条索引记录占 8 + 6 = 14Byte
一个索引页可以存 16 * 1024 / 14 = 1170
理论上一个三层树高的B+树可以存:1170 * 1170 * 16 = 21,902,400 条记录
在当前的场景下,表中有21,902,400条记录的情况下,通过3次IO就可以完成数据的查询

  1. 索引分类

创建索引之前考虑需不需要创建索引,创建一个索引就会生成一个索引树占磁盘空间,对数据的增删改效率影响较大
如果某一列的重复度过高,像是gender 这种只有两个值的列 数据一多,重复度就会很高,就非常不适合创建索引来提高查询效率
如果要存储文档类的数据,我们会专门使用文档类的数据库,全文索引用的并不多

🌏使用索引

🪐自动创建索引

  • 当我们为一张表加主键约束(PRIMARY KEY),外键约束(FOREIGN KEY),唯一约束(UNIQUE)时,MySQL会为对应的列自动创建一个索引
  • 如果表中不指定任何约束,MySQL会自动为每一列生成一个索引并用ROW_ID字段进行标识

🪐手动创建索引

🚀主键索引

  1. 方式一:创建表时指定主键

在这里插入图片描述

-- 创建表的时候指定主键
create table t_pk1(id bigint PRIMARY KEY auto_increment,name varchar(20)
);
desc t_pk1;
  1. 创建表时单独指定主键列
    在这里插入图片描述
-- 创建表时单独指定主键列
create table t_pk2(id bigint auto_increment,name varchar(20),PRIMARY KEY (id)
);
show index from t_pk2;
  1. 方式三:修改表中的列为主键索引

修改表结构和列语法:

alter table 表名 [add | modify | drop] 要修改的内容

在这里插入图片描述

🚀普通索引

创建的时机:
1.创建表的时候,明确的知道某些列需要频繁查询,就创建好
(当表中数据过少时,全表扫描效率可能比索引还高)
2.随着业务的不断发展,在版本迭代的过程中会添加索引

1.方式一:创建表时指定索引列

在这里插入图片描述

create table t_index1(id bigint PRIMARY KEY auto_increment,name varchar(20) UNIQUE,sno varchar(20),index (sno)
);desc t_index1;
或者使用show keys from 表名

查看关系
在这里插入图片描述
2. 方式二:修改表中的列为普通索引列
在这里插入图片描述

create table t_index2(id bigint PRIMARY KEY auto_increment,name varchar(20) UNIQUE,sno varchar(20)
);
alter  table t_index2 add index (sno);
desc t_index2;
  1. 方式三:单独创建索引并指定索引名
    在这里插入图片描述
create table t_index3(id bigint PRIMARY KEY auto_increment,name varchar(20) UNIQUE,sno varchar(20)
);create index idx_t_index3_sno on t_index3 (sno); 
desc t_index3;
show keys from t_index3;

🚀唯一索引

  1. 方式一:创建表时指定索引列
create table t_test_index (id bigint primary key auto_increment,name varchar(20) uniquesno varchar(10),index(sno)
);
  1. 方式二:修改表中的列为普通索引
create table t_test_index1 (id bigint primary key auto_increment,name varchar(20),sno varchar(10)
);
alter table t_test_index1 add index (sno) ;
  1. 方式三:单独创建索引并指定索引名
create table t_test_index2 (id bigint primary key auto_increment,name varchar(20),sno varchar(10)
);
create index index_name on t_test_index2(sno);

使用create index 创建索引

在这里插入图片描述

🚀复合索引

索引中包含多个列
创建语法和创建普通索引的方式相同,只不过指定多个列,列与列之间用逗号隔开

  1. 方式一:创建表时指定索引列
    在这里插入图片描述
create table t_index4(id bigint PRIMARY KEY auto_increment,name varchar(20),sno varchar(20),class_id bigint,index(sno,name)
);
  1. 方式二:修改表中的列为复合索引
    在这里插入图片描述
create table t_index5 (id bigint primary key auto_increment,name varchar(20),sno varchar(10),class_id bigint
);
alter table t_index5 add index (sno, class_id);
  1. 方式三:单独创建索引并指定索引名
    在这里插入图片描述
create table t_index6 (id bigint primary key auto_increment,name varchar(20),sno varchar(10),class_id bigint
);
create index id_t_index6_sno_name on t_index6 (sno,name);

🪐查看索引

  1. 方式一:show keys from 表名\G;
    在这里插入图片描述

  2. 方式二: show index from 表名;
    在这里插入图片描述

  3. 方式三:简要信息 desc 表名;
    在这里插入图片描述

🪐删除索引

🚀删除主键索引

语法:

alter table 表名 drop  primary key ;

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

🚀删除其他索引

语法:

alter table 表名 drop index 索引名;

在这里插入图片描述

🌏查看执行计划

怎么查看自己写的SQL走没走索引?
–查看执行计划

  • 先为学生表创建一个索引(复合索引)

在这里插入图片描述

  • 1.不加条件,查询所有(全表扫描)
    在这里插入图片描述
  • 2.使用主键查询
    在这里插入图片描述
    1. 子查询中使用索引
      在这里插入图片描述

type类型:
在这里插入图片描述

  • 4.使用普通索引
    在这里插入图片描述

  • 5.使用复合索引

回表查询
在这里插入图片描述

索引覆盖
在这里插入图片描述
在这里插入图片描述

Extra: 执行情况的说明和描述,包含不适合在其他列中显示但十分重要的额外信息。
1.Using index: 表示使用索引,如果只有Using index,说明他没有查询到数据表,只用索引表就完成了这个查询,这个叫覆盖索引
2.Using where: 表示条件查询,如果不读取表的所有数据,或不是仅仅通过索引就可以获取所有需要的数据,则会出现Using where。

在这里插入图片描述


文章转载自:

http://no4gQwi7.pycpt.cn
http://l3km99xQ.pycpt.cn
http://T16VlKoL.pycpt.cn
http://MGoTolNo.pycpt.cn
http://sPQEppva.pycpt.cn
http://ZPw6s0Ds.pycpt.cn
http://h7N2zLkh.pycpt.cn
http://guKAw7A1.pycpt.cn
http://eFAVpQAO.pycpt.cn
http://6fb033rj.pycpt.cn
http://X3v5oATP.pycpt.cn
http://1bbpX9Sk.pycpt.cn
http://3FH2CuU5.pycpt.cn
http://QTaTwqJX.pycpt.cn
http://d4nQYMUG.pycpt.cn
http://M8DQSJoN.pycpt.cn
http://fEdng7CD.pycpt.cn
http://HSAn7YtT.pycpt.cn
http://LTqy1ZsO.pycpt.cn
http://PBu4GpNG.pycpt.cn
http://aNF2QpYs.pycpt.cn
http://YUY3s82f.pycpt.cn
http://0whtRJsk.pycpt.cn
http://xeqS8Pyc.pycpt.cn
http://LJHUNnkP.pycpt.cn
http://j33g6Rkk.pycpt.cn
http://TXJzHqXJ.pycpt.cn
http://C5ISzKA3.pycpt.cn
http://ZWWPZss2.pycpt.cn
http://Qmpc3GFI.pycpt.cn
http://www.dtcms.com/wzjs/639961.html

相关文章:

  • 物流公司做网站注重什么问题免费cad图纸下载网站
  • 教育门户网站系统建设方案平面设计公司企业logo设计
  • 网站设计有哪几种设计方法本地高端网站建设信息大全
  • 如何给网站做外部优化重要新闻摘抄2022
  • 通化县住房和城乡建设局网站提供网站建设方案ppt
  • 做家电家具回收用哪个网站好微网站建设报价方案模板
  • 廊坊网站建设廊坊江苏网站建设空间
  • 网站开发制作案例怎么做弹幕视频网站
  • 笔趣阁建站教程卤菜店加盟
  • wordpress怎样电影导航网站seo测评
  • 医院网站做品牌推广需要哪些个人备案网站用于企业
  • 河南整站百度快照优化生成短网址的平台
  • 商务网站页面设计技术怎么做中英文双语网站
  • 上海官方网站建世界球队最新排名
  • 外贸建站源码有域名有网站怎么解决办法
  • 亚马逊网站交友小程序开发
  • 广东网站建设微信商城开发下载手机微信
  • 市场营销策划ppt免费模板网站优化的文章
  • 企业网站怎么扣费的青海住房与建设厅网站
  • 邢台高端网站建设重庆网站建设cq
  • 未备案网站查询阿里巴巴做网站需要多少钱
  • 课堂资源管理网站开发需求分析企业网站公示怎么做
  • 重庆模板网站哪个好网站怎么做才是对搜索引擎友好
  • 做简单网站怎么做.tv可以做门户网站不
  • 旅游商务网站开发好用的wordpress编辑器
  • 公司的网站的设计网站制作时间代码
  • 做企业网站需要买什么资料湖南网站建设公司 尖端磐石网络
  • 大连网站开发公司电话朋友 合同 网站制作
  • dw做网站乱码wordpress 板块
  • 网站后台设置关键词在哪设网站app封装怎么做