技术标签: 数据库
MySQL索引基础知识,MySQL索引的优化,MySQL排序
聚簇索引:又称聚集索引,并不是一种单独的索引类型,而是一种数据存储方式。具体的细节依赖于其实现方式,但InnoDB的聚簇索引实际上在同一个结构中保存了B-Tree索引和数据行。
当表有聚簇索引时,它的数据行实际上存放在索引的叶子页(Leaf page)中,术语“聚簇”表示数据行和相邻的键值紧凑地存储在一起。因为无法同时把数据行存放在两个不同的地方,所以一个表只能有一个聚簇索引(不过,覆盖索引可以模拟多个聚簇索引的情况)。
InnoDB通过主键聚集数据,如果没有定义主键,InnoDB会选择一个唯一的非空索引代替。如果没有这样的索引,InnoDB会隐式定义一个主键来作为聚簇索引。InnoDB只聚集在同一页面中的记录。包含相邻键值的页面可能会相距甚远。
聚簇索引按照如下规则创建:
Note: 对于选择唯一索引的顺序是按照定义唯一索引的顺序,而非表中列的顺序, 同时选中的唯一索引字段会充当为主键,或者Innodb隐式创建的自增列也可以看做主键。
聚簇索引整体是一个b+树,非叶子节点存放的是键值,叶子节点存放的是行数据,称之为数据页,这就决定了表中的数据也是聚簇索引中的一部分,数据页之间是通过一个双向链表来链接的,上文说到B+树是一棵平衡查找树,也就是聚簇索引的数据存储是有序的,但是这个是逻辑上的有序,但是在实际在数据的物理存储上是,因为数据页之间是通过双向链表来连接,假如物理存储是顺序的话,那维护聚簇索引的成本非常的高。
详细引用来源
二级索引保存的式行的主键值
CREATE TABLE `t_wms_sku` (
`id` bigint(20) NOT NULL AUTO_INCREMENT,
`sku_id` bigint(20) NOT NULL DEFAULT '0',
`sku_name` varchar(50) NOT NULL DEFAULT '',
`price` decimal(18,2) NOT NULL DEFAULT '0.00',
`class3_id` bigint(20) NOT NULL DEFAULT '0',
PRIMARY KEY (`id`),
UNIQUE KEY `udx_sku_id` (`sku_id`) USING BTREE,
KEY `idx_class3` (`class3_id`) USING BTREE
) ENGINE=InnoDB AUTO_INCREMENT=8195 DEFAULT CHARSET=utf8
type意味着类型,这里的type官方全称是“join type”,意思是“连接类型”,这样很容易给人一种错觉觉得必须需要俩个表以上才有连接类型。事实上这里的连接类型并非字面那样的狭隘,它更确切的说是一种数据库引擎查找表的一种方式,在《高性能mysql》称呼它为访问类型更贴切一些。
type显示的是访问类型,是较为重要的一个指标,结果值从最好到最差依次是:system>const>eq_ref>refindex>all
explain select * from t_wms_sku where sku_name = '油菜(大棵/新鲜|斤)' ;
explain select sku_id from t_wms_sku;
explain select * from t_wms_sku where sku_id < 1249;
explain select * from t_wms_sku where id < 1249
explain select * from t_wms_sku where class3_id = 555;
explain
select s.*, p.* from t_wms_sku s
inner join p_sku p on s.sku_id = p.id
explain select * from t_wms_sku where sku_id = 1238;
表示上述表的连接匹配条件,即哪些列或常量被用于查找索引列上的值。
出现上述情况,因为MySQL的join是通过嵌套循环实现的。
文章浏览阅读78次。背景:主域名下多数子域名访问后直接跳转至www域名的服务。百度百科--域名泛解析:在域名前添加任何子域名,均可访问到所指向的WEB地址。也就是客户的域名#.com之下所设的*.#.com全部。泛域名解析:利用通配符* (星号)来做次级域名以实现所有的次级域名均指向同一IP地址。子域名挖掘: 泛解析这个问题的解决方法很简单,向DNS请求*记录,然后把枚举子域名回来的..._dns枚举泛解析
文章浏览阅读206次。我们先定义一个数组x并为其分配储存空间,如下:int[] x=new x[100] 想要对数组中的每一个元素进行随机数赋值,需要用到循环控制语句,这里以for循环为例:定义一个变量i并赋值为0,作为for循环的起始条件;需要注意的是,数组的下标是从0开始的,比如x[0]到x[99],代表数组的长度为100。所以再写入判断语句的时候,不能写成a<=x.length;控制变量语句应写入自加语句。在循环体里,对x[a]进行随机数赋值,以0到100为例如图: 完成对x[a]的赋值之后,开始写入打印代_编写一个方法,对数组的元素用[0,100)之间的随机数进行初始化,初始化之后对数组进
文章浏览阅读1k次。<一>安装和版本问题1) eMule对Windows有什么要求?eMule能在Windows 95版本以上的Windows操作系统下运行。1个好的P2P软件需要好的拨号网络的支持,所以Windows 98和Windows ME的比较差网络运行情况可能会影响eMule的发挥;相对来说Windows 2000和Windows XP更适合使用eMule。2) 弹出错误信息说oleacc.dl..._emule v0.50b 最新服务器未连接
文章浏览阅读2w次,点赞19次,收藏49次。批处理版本C 语言版本C++ 语言版本JAVA 语言版本C# 语言版本Python 语言版本NodeJS 语言版本PHP 语言版本Perl 语言版本Go 语言版本VB 语言版本SQL 语言版本树莓派 版本易语言 版本期待评论区故事的起源,有个家伙发来一个 BAT 的关机脚本,我顺手给改成了 八种语言的。_如何写强制关机脚本
文章浏览阅读4.1k次,点赞2次,收藏7次。一、集群介绍系统环境:Centos7.5服务器节点:主机名 IP hadoop03 192.168.1.153 hadoop04 192.168.1.154 hadoop05 192.168.1.155 二、环境准备1、安装docker:略过2、安装docker compose1)使用官方推荐方式(此方式需服务器翻外网)curl -L "https://github.com/docker/compose/releases/download_insufficient buffer remaining for aead cipher fragment (2). needs to be more
文章浏览阅读6k次,点赞7次,收藏39次。1、服务安装1.1、服务安装执行下面的命令安装apt install -y bind9 dnsutils1.2、配置文件作用服务安装完成之后,执行下面的命令查看配置文件列表ls -l /etc/bind然后得到下面的信息root@debian:~# ls -l /etc/bind总用量 48-rw-r--r-- 1 root root 2761 5月 18 16:02 bind.keys-rw-r--r-- 1 root root 237 5月 18 16:02 db.0_debian10安装powerdns
文章浏览阅读3.3k次。前言传输控制协议(TCP,Transmission Control Protocol)是一种面向连接的、可靠的、基于字节流的传输层通信协议。TCP旨在适应支持多网络应用的分层协议层次结构。 连接到不同但互连的计算机通信网络的主计算机中的成对进程之间依靠TCP提供可靠的通信服务。TCP假设它可以从较低级别的协议获得简单的,可能不可靠的数据报服务。 原则上,TCP应该能够在从硬线连接到分组交换或电路交换网络的各种通信系统之上操作。如需了解UDP与TCP对比,可点击了解UDP和TCP对比。下面简单介绍下T_qtcpserver怎么回去客户端ip
文章浏览阅读20次。将原资料精简打包只为你能轻装上阵,冲刺梦校!▼志愿填报手册【九推版本】▼填报有疑问?九推无offer?这里有超详细的志愿填报指南,助你填报无忧!超周到的防鸽策略&捡漏策略,助你成功上岸!叮咚!九月份岛主发送的福利已经“上门”啦~亲,注意查收哦~
文章浏览阅读371次,点赞5次,收藏5次。探秘MIP-NeRF:谷歌的实时三维重建新利器项目地址:https://gitcode.com/google/mipnerf项目简介MIP-NeRF 是由谷歌研究团队推出的一项创新性项目,它基于神经辐射场(NeRF)技术,旨在实现更高效、更真实的3D场景重建和渲染。该项目的目标是将复杂的三维建模过程简化为一个快速、实时的过程,让用户体验到前所未有的视觉效果。技术解析NeRF(神经辐射场...
文章浏览阅读710次,点赞2次,收藏2次。 在讲解这个题目之前, 我不得不狠狠的吐槽cin和cout的效率, 我提交了6遍都是超时, 最后一遍提交时统统把cin和cout改为scanf和printf才过的, 当时心情又高兴又难受. 查看题目点击这里 Find them, Catch them POJ - 1703吐槽完了, 开始讲题. 第一次遇见这种题目是感觉满头痛的, 咦~, 并查集不是将关系是朋..._poj 团伙 倍增并查集
文章浏览阅读113次。文章首发及后续更新:http://mwhls.top/617.html新的更新内容请到mwhls.top查看。如果没有图片请到上方的文章首发页面查看。昨天刷题做二阶字符串指针的时候又出问题了,所以今天换了个简单难度的题。结果结果!我又出问题了!可恶!不过解决了:C语言二级字符串指针的使用(函数传参/长度获取/空间分配) 题目编写一个函数来查找字符串数组中的最长公共前缀。如果不存在公共前缀,返回空字符串 ""。示例 1:输入: ["f_leetcode最长公共前缀 c
文章浏览阅读32次。除了以上作品下面是2023-2024年最新100套计算机专业原创的毕业设计源码+数据库,是近期作品,如果你的题目刚好在下面可以文末领取java源码参考。后台主要是管理员,管理员功能包括首页、个人中心、用户管理、器械分类管理、器械商品管理、留言反馈、系统管理、订单管理等;springboot基于springboot的电子书阅读系统的开发与设计。springboot基于springboot的健康生活管理系统。springboot基于Android的小说阅读与创作的平台。