聊聊mysql

记录那些坑
本文会持续更新,陆续更新有关mysql技术内幕、实战优化、面试技巧。

文章目录

  • 前言
  • 索引
    • BTree之聚集索引
    • BTree之辅助索引
    • BTree之联合索引
    • BTree之覆盖索引
  • 使用到的工具
    • 1、py_innodb_page_info工具
    • 2、hexdump工具
  • 总结


前言

重中之重的MySql数据库

mysql数据库不仅在工作中经常使用,面试中也是必问的内容。本文主要内容参考“mysql技术内幕”一书。


提示:以下是本篇文章正文内容,下面案例可供参考

索引

数据库要想查的快,索引得利用好。
数据库要想入的快,索引太多可不好。
mysql中索引类型有:BTree,Full Text,Hash,RTree。

BTree之聚集索引

聚集索引:ID索引
ID索引使用BTree结构,每个表仅且只有一个!!!,(即使没有创建主键,mysql会默认创建一个隐藏列作为ID索引)
BTree高度:
BTree中节点存储键值和地址指针,叶子结点存储键值、指针、数据。
物理上不一定是顺序的,逻辑上是顺序的(通过指针链接)。
在这里插入图片描述

BTree之辅助索引

辅助索引就是主键以外的 单个字段的BTree索引类型的了。
辅助索引 叶子结点书签:聚集索引键。
当通过辅助索引来寻找数据时,InnoDB存储引擎会遍历辅助索引并通过叶级别的指针获得指向主键索引的主键,然后再通过主键索引来找到一个完整的行记录。
在这里插入图片描述

BTree之联合索引

将多个字段联合一起做索引,索引结构如下:
在这里插入图片描述
根据图示需要清楚,键值是个多元组,多元组中是按照字段的顺序进行排列的。所以,在进行查询时,如果没有按照自从向右的字段查询,就会打破联合索引,使之失效!!!

注意:如果创建联合索引(a,b,c);如果查询a和b order by c ,就可以使用到联合索引; 如果查询a 直接order by c,就不会使用到索引,因为(a,c)并没有排序

BTree之覆盖索引

覆盖索引常见的场景为:直接使用索引查询出索引键值、主键的内容,根据索引的字段进行范围或非范围的统计。
判断是否为覆盖索引,使用explain,查看Extra字段,如果为Using index,就表示走了。
案例:(t表,a为主键,c为辅助索引,cd为联合索引,b无索引)

  • explain SELECT a from t where c = 1 ; 为覆盖索引
  • explain SELECT count(*) from t ; 为覆盖索引
  • explain SELECT count(b) from t ; 全表扫描
  • explain SELECT count(b) from t where c >10 ; 非覆盖索引,先走c的辅助索引然后走主键索引。
  • explain SELECT count(*) from t where d > 0 and d<10 ; 为覆盖索引

使用到的工具

1、py_innodb_page_info工具

首先 git 下载 https://gitee.com/andy_yyf/py_innodb_page_info

clone到合适位置。

本地需要有python2 (一般服务器自带)

执行命令:python py_innodb_page_info.py /{对应的path}/t.ibd -v

2、hexdump工具

在Windows操作系统下,可以选择通过程序UltraEdit打开该二进制文件。在Linux环境下,使用命令hexdump-C-v mytest.ibd>mytest.txt。这里将结果重定向到了文件mytest.txt,打开mytest.txt文件,找到如下内容:xxxx

总结

提示:

本文仅仅简单说明了有关mysql相关内容,如深入理解可读相关层面的书籍。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/web/44216.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

概率论期末速成(知识点+例题)

考试范围 一&#xff1a; 事件关系运算性质全概率公式、贝叶斯公式古典概型 二&#xff1a; 离散分布律连续密度函数性质 -> 解决三个问题&#xff08;求待定系数、求概率、求密度函数&#xff09;分布函数 -> 解决三个问题常用分布&#xff08;最后一节课的那几个分…

手电筒的光能飞到宇宙尽头吗

如果我们打开手电筒向夜空照一秒再关掉&#xff0c;我们将会看到&#xff0c;在关掉手电筒的一瞬间&#xff0c;手电筒发出的光束也会消失&#xff0c;那么&#xff0c;它发出的光哪去了呢&#xff1f;下面我们就来聊一下这个话题。实际上&#xff0c;我们看到的光束&#xff0…

Spark SQL 概述

Spark SQL 概述 Spark SQL 是 Apache Spark 的一个模块&#xff0c;专门用于处理结构化数据。它集成了 SQL 查询和 Spark 编程的强大功能&#xff0c;使得处理大数据变得更加高效和简便。通过 Spark SQL&#xff0c;用户可以直接在 Spark 中使用 SQL 查询&#xff0c;或者使用 …

ubuntu16.04安装低版本cmake(安装cmake安装)

文章目录 ubuntu16.04安装低版本cmake&#xff08;安装cmake安装&#xff09;1. **下载并解压CMake压缩文件**&#xff1a;- 首先&#xff0c;你需要从CMake的官方网站或其他可靠来源下载cmake-2.8.9-Linux-i386.tar.gz文件。- 然后在终端中使用以下命令解压文件&#xff1a; 2…

BFS:多源BFS问题

一、多源BFS简介 超级源点&#xff1a;其实就是把相应的原点一次性都丢到队列中 二、01矩阵 . - 力扣&#xff08;LeetCode&#xff09; class Solution { public:const int dx[4]{1,-1,0,0};const int dy[4]{0,0,1,-1};vector<vector<int>> updateMatrix(vector…

headerpwn:一款针对服务器响应与HTTP Header的模糊测试工具

关于headerpwn headerpwn是一款针对服务器响应与HTTP Header的模糊测试工具&#xff0c;广大研究人员可以利用该工具查找网络异常并分析服务器是如何响应不同HTTP Header的。 功能介绍 当前版本的headerpwn支持下列功能&#xff1a; 1、服务器安全与异常检测&#xff1b; 2、…

QFileDialog的简单了解

ps&#xff1a;写了点垃圾&#xff08;哈哈哈&#xff09; 它继承自QDialog 这是Windows自己的文件夹 这是两者的对比图&#xff1a; 通过看QFileDialog的源码&#xff0c;来分析它是怎么实现这样的效果的。 源码组成&#xff1a; qfiledialog.h qfiledialog_p.h&#xff…

Python面试宝典第11题:最长连续序列

题目 给定一个未排序的整数数组 nums &#xff0c;找出数字连续的最长序列&#xff08;不要求序列元素在原数组中连续&#xff09;的长度。请你设计并实现时间复杂度为 O(n) 的算法解决此问题。 示例 1&#xff1a; 输入&#xff1a;nums [100,4,200,1,3,2] 输出&#xff1a;…

打造热销爆款:LazadaShopee店铺测评与关键词策略

面对Lazada和Shopee平台上店铺销量难以突破的困境&#xff0c;卖家们往往寻求各种解决方案。其中&#xff0c;店铺测评作为提升店铺信誉、优化产品排名及增加曝光度的有效手段&#xff0c;正逐渐成为卖家关注的焦点。以下将深入探讨店铺测评的好处、实施技巧及自养号的关键要素…

提升校园效率:智慧校园后勤管理中的寻物管理功能

在智慧校园后勤管理体系中&#xff0c;寻物管理功能扮演着连接遗失与找回的桥梁角色&#xff0c;它充分利用现代信息技术&#xff0c;为校园内的师生提供了一套高效、便捷的失物招领解决方案。此功能围绕以下几个核心方面展开。 首先&#xff0c;它支持在线报失与信息登记。一旦…

如何连接到公司的服务器?

1.下载FileZilla FileZilla的下载与安装以及简单使用&#xff08;有图解超简单&#xff09;-CSDN博客 2.打开 3.输入主机 用户名 密码 端口 注&#xff1a;主机支持的协议类型&#xff1a; 4.连接成功 其他方式也有很多&#xff0c;比如通过cmd&#xff0c;html网页等等 3个…

昇思25天学习打卡营第19天|ShuffleNet图像分类

今天是参加昇思25天学习打卡营的第19天&#xff0c;今天打卡的课程是“ShuffleNet图像分类”&#xff0c;这里做一个简单的分享。 1.简介 在第15-18日的学习内容中&#xff0c;我们陆陆续续学习了计算机视觉相关的模型包括图像语义分割、图像分类、目标检测等内容&#xff0c…

中关村软件园发布“数据合规与出境评估服务平台”

在2024中关村论坛年会期间&#xff0c;中关村软件园发布“数据合规与出境评估服务平台”。该平台是中关村软件园结合北京市“两区”建设&#xff0c;立足软件园国家数字服务出口基地和数字贸易港建设&#xff0c;围绕园区内外部企业用户的业务合作、科研创新、跨国运营等场景需…

Python UDP编程之实时聊天与网络监控详解

概要 UDP(User Datagram Protocol,用户数据报协议)是网络协议中的一种,主要用于快速、简单的通信场景。与TCP相比,UDP没有连接、确认、重传等机制,因此传输效率高,但也不保证数据的可靠性和顺序。本文将详细介绍Python中如何使用UDP协议进行网络通信,并包含相应的示例…

如何理解跨界营销?详解跨界营销的主要类型和方法!

跨界营销是一种创新的营销策略&#xff0c;它巧妙地捕捉不同行业、产品和消费者偏好之间的共通点和潜在联系。这种策略将看似不相关的元素相互融合&#xff0c;相互影响&#xff0c;创造出一种全新的生活方式和审美观念&#xff0c;以此吸引目标消费者群体的注意和青睐。 通过…

LiveNVR监控流媒体Onvif/RTSP用户手册-用户管理:编辑、添加用户、关联通道、重置密码、删除、过滤搜索

LiveNVR监控流媒体Onvif/RTSP用户手册-用户管理:编辑、添加用户、关联通道、重置密码、删除、过滤搜索 1、用户管理1.1、添加用户1.2、关联通道1.3、重置密码1.4、编辑1.5、删除1.6、过滤搜索 2、RTSP/HLS/FLV/RTMP拉流Onvif流媒体服务 1、用户管理 1.1、添加用户 点击用户管理…

学习网络的第一步:全面解析OSI与TCP/IP模型

我是小米,一个喜欢分享技术的29岁程序员。如果你喜欢我的文章,欢迎关注我的微信公众号“软件求生”,获取更多技术干货! Hello,大家好!我是你们的好朋友小米。今天我们来聊一聊网络基础知识中的重量级选手——OSI模型和TCP/IP模型!网络的世界就像一个巨大的迷宫,而这两个…

Docker 镜像构建报 exec xxx.sh: no such file or directory

问题记录 场景&#xff1a; 处于对nacos docker 部署最新版本的探究&#xff0c;但是nacos/nacos-server镜像拉取不到最新版本&#xff0c;官网也是给出自己构建镜像的方案。 具体步骤很简单&#xff0c;先clone项目&#xff0c;然后签出你要的nacos版本&#xff0c;通过docke…

算法力扣刷题记录 四十二【101. 对称二叉树、100.相同的树、572.另一个树的子树】

前言 二叉树篇&#xff0c;开始对二叉树操作练习。 记录 四十二【101. 对称二叉树】。 继续。 一、题目阅读 给你一个二叉树的根节点 root &#xff0c; 检查它是否轴对称。 示例 1&#xff1a; 输入&#xff1a;root [1,2,2,3,4,4,3] 输出&#xff1a;true示例 2&#x…

Pytest单元测试系列[v1.0.0][Pytest基础]

Pytest安装与配置 和Unittest一样&#xff0c;Pytest是另一个Python语言的单元测试框架&#xff0c;与Unittest相比它的测试用例更加容易编写、运行方式更加灵活、报错信息更加清晰、断言写法更简洁并且它可以运行有unittest和nose编写的测试用例。 Pytest 安装 启动命令行&…