mysql进阶学习 | DAY 14
存储引擎
体系结构
-
连接层
-
服务层
-
引擎层
-
存储层
存储引擎 表类型
查看引擎 查看建表语句
指定存储引擎 ENGINE
SHOW engins
InnoDB
默认存储引擎
-
遵循ACID模型 支持事务
-
行级锁 提高并发访问性能
-
支持外键 FOREIGN KEY约束 保证数据完整性和正确性
对应文件 xxx.ibd 表空间文件{结构 数据 索引}
应用:对事务完整性比较高 在并发条件下要求数据的一致性
MyISAM
早期默认存储引擎
-
不支持事务 不支持外键
-
支持表锁 不支持行锁
-
访问速度快
xxx.MYD(数据) xxx.MYI (索引) xxx.sdi(表结构)
应用:数据操作以读取和插入为主 很少更新或删除 对事务完整性并发性瑶琴斌不是很高
Memory
存储在内存 只能作为临时表或缓存使用
-
内存存放
-
hash索引(默认)
应用:临时表或缓存 对表的大小有限制
索引
帮助mysql高效获取数据的数据结构
无索引 全表扫描
索引
-
优点 调高检索效率
-
缺点 降低增删改的效率
索引结构
在存储引擎层实现 不同引擎存储不同结构
-
B+Tree索引 默认
-
Hash索引
-
R-Tree 空间索引
-
FUll-text 全文索引
B树 多路平衡查找树
度数 一个节点子节点的个数 每个节点最多存储n个指针 n-1个值
B+树
-
所有元素都会出现在叶子节点
-
叶子节点形成一个单向链表
在mysql中 优化了B+树 增加一个指向相邻叶子节点的链表指针 形成了带有顺序指针的b+树 提高区间访问性能
Hash索引
-
不支持范围查找
-
无法利用索引
索引分类
-
主键索引 primary
-
唯一索引 uniquee
-
操常索引 快速定位数据
-
全文索引 fulltext
innodb存储引擎 根据索引存储形式分为
聚焦索引: 将数据存储与索引放到了一起 索引结构的叶子节点保存了行数据 必须有而且只有一个
二级索引 :数据与索引分开存储 索引结构的叶子节点关联的是对应的主键
回表查询:先走二级索引找到主键值 然后走聚焦索引找到row
创建索引:create [unique | fulltext] index index_name on table_name (index_col_name...);
一个索引关联多个字段 称为 联合索引
查看索引: SHOW index from table_name
删除索引: DROP index index_name on table_name
性能分析
-
明确 sql 执行频率 增删改查所占的频率
show [session|globale] sattus like 'com_______';服务器状态信息 -
慢查询日志
-
记录所有执行时间超过指定参数的sql语句的日志
-
慢查询日志默认没有开启 需要在配置文件配置
/etc/my.cnf添加slow_query_log=1long_query_time=2 -
查询是否开启
show variables like 'slow_query_log'; -
只会记录超过预定时间的操作才回记录
-
-
profile 详情
-
show profiles查看耗时都去了哪里 -
SELECT @@have_profiling参数查看是否支持profile操作 -
set profiling=1开启 -
查看指定query_id 的sql语句各个阶段的耗时
show profile for query_id; -
查看cpu使用情况
show profile cpu for query_id
-
-
explain执行计划
-
在任意select语句之前添加关键字
explain -
id 表示查询语句中执行select自居或者是操作表的顺序 id相同 按照从上往下执行 如果不同 数值越大先执行
-
select_type 表示select的类型 simple(简单查询)primary(主查询 外层查询) union(union中的第二个或者后面的查询语句)subquery(select/where 之后包含了子查询)
-
type 连接类型
-
pssible_key 显示可能应用在这张表上的索引
-
key 实际使用的索引
-
key_len 索引中使用的字节数
-
rows 预估值 执行查询的行数
-
filtered 行数占需要读取的行数的百分比
-
索引使用
-
最左前缀法则
出现了联合索引 从索引的最左列开始查询 并且不跳过索引中发的列
-
索引列运算
不要在索引列上进行运算 索引将失效
-
字符串索引添加引号
否则索引将失效
-
模糊查询
尾部模糊 不会失效 头部模糊 索引失效
-
or连接条件
or前条件中有索引 后面没有索引 那么涉及的索引不会用到
-
覆盖索引
查询使用了索引 并且需要返回的列 在该索引中已经全都被找到
出现 using index condition 使用了索引 但是需要回表查询
出现 using where using index 使用了索引 不需要回表查询
相关文章:
mysql进阶学习 | DAY 14
存储引擎 体系结构 连接层 服务层 引擎层 存储层 存储引擎 表类型 查看引擎 查看建表语句 指定存储引擎 ENGINE SHOW engins InnoDB 默认存储引擎 遵循ACID模型 支持事务 行级锁 提高并发访问性能 支持外键 FOREIGN KEY约束 保证数据完整性和正确性 对应文件 xx…...
使用GPT生成python图表
首先,生成一脚本,读取到所需的excel表格 import xlrddata xlrd.open_workbook(xxxx.xls) # 打开xls文件 table data.sheet_by_index(0) # 通过索引获取表格# 初始化奖项字典 awards_dict {"一等奖": 0,"二等奖": 0,"三等…...
[深度学习]yolov9+deepsort+pyqt5实现目标追踪
【YOLOv9DeepSORTPyQt5追踪介绍】 随着人工智能技术的飞速发展,目标追踪在视频监控、自动驾驶等领域的应用日益广泛。其中,YOLOv9作为先进的目标检测算法,结合DeepSORT多目标追踪算法和PyQt5图形界面库,能够为用户提供高效、直观…...
C#_WaitAll、WhenAll、async及await
Task.WhenAll、Task.WaitAll Task.WhenAll 和 Task.WaitAll 都是用于等待多个任务完成的方法,但它们之间有一些重要的区别。 返回类型: Task.WhenAll: 返回一个 Task 对象,该对象表示所有输入任务的联合任务。 Task.WaitAll: 没有返回值。它是一个同步方…...
leetcode hot100零钱兑换Ⅱ
本题可以看出也是背包问题,但区别于之前的01背包问题,这个是完全背包问题的变形形式。 下面介绍01背包和完全背包的区别与联系: 01背包是背包中的物品只能用一次,不可以重复使用,而完全背包则是可以重复使用。01/完全…...
路由器配置DMZ主机映射
路由器配置DMZ主机映射 光猫路由模式配置方法 光猫路由模式是用光猫进行拨号连接,所有设备通过光猫访问互联网,只需要设置光猫的DMZ主机映射地址为局域网主机即可 光猫桥接模式配置方法 光猫桥接模式,是穿透光猫,通过路由器拨…...
ubuntu22.04@Jetson Orin Nano之CSI IMX219安装
ubuntu22.04Jetson Orin Nano之CSI IMX219安装 1. 源由2. 安装2.1 硬件安装2.2 软件配置2.3 新增摄像头 3. 效果4. 参考资料 1. 源由 折腾半天时间,捣鼓这个套装摄像头(IMX219)的安装,死活就是没有这个设备。世界总是这么小,看看遇到问题的大…...
Kettle下载地址
kettle是一款基于java开发的洗数工具,可以通过图像化的操作界面,拖拉拽的操作方式,实现数据导入导出清洗等功能,还支持编写脚本进行数据处理,功能十分强大。 kettle本身是开源免费的,但它的下载地址非常难…...
密码学基本概念
1、信息安全的属性:机密性、认证(消息认证、身份认证)、完整性、不可否认性、可靠性、可用性、可控性、审计。 2、密码学是研究解决机密性、认证(消息认证、身份认证)、完整性、不可否认性这些安全问题的手段…...
9个最受欢迎的开源自动化测试框架盘点!
自动化测试框架可以帮助测试人员评估多个Web和移动应用程序的功能,安全性,可用性和可访问性。尽管团队可以自己构建复杂的自动化测试框架,但是当他们可以使用现有的开源工具,库和测试框架获得相同甚至更好的结果时,通常…...
高速稳定、网络隔离,解析“向日葵控控”远控方案在医疗行业应用
在医疗大健康领域,依托高速发展的信息化技术加速布局智能化,通过远程手段提高医疗服务质量、促进医疗资源共享、提升医疗工作效率,已成为医院和各类社区诊所等提供关键医疗服务部门近年来的发展目标之一。 同时,根据医疗领域的特殊…...
抖音视频提取软件使用功能|抖音视频下载工具
我们的抖音视频提取软件是一款功能强大、易于操作的工具,旨在解决用户在获取抖音视频时需要逐个复制链接、下载的繁琐问题。我们的软件支持通过关键词搜索和分享链接两种方式获取抖音视频,方便用户快速找到自己感兴趣的内容。 主要功能模块:…...
Django入门指南:从环境搭建到模型管理系统的完整教程
环境安装: 由于我的C的Anaconda 是安装在C盘的,但是没内存了,所有我将环境转在e盘,下面的命令是创建环境到指定目录中. conda create --prefixE:\envs\dj42 python3.9进入环境中: conda activate E:\envs\dj42…...
Elasticsearch从入门到精通-01认识Elasticsearch
Elasticsearch从入门到精通-01认识Elasticsearch 👏作者简介:大家好,我是程序员行走的鱼 🍂博主从本篇正式开始ES学习,希望小伙伴可以一起探讨 📖 本篇主要介绍和大家一块简单认识下ES并了解ES中的主要角色…...
Element UI的安装和使用
Element UI 是一个基于 Vue 2.0 的桌面端组件库,广泛用于快速构建高质量的用户界面。以下是 Element UI 组件的安装和使用的详细步骤: 1. 安装 Element UI 在开始之前,确保你已经设置好了 Vue 项目环境。如果你还没有Vue项目,可…...
c++的指针完整教程
概述:C的指针是一种特殊的变量,它存储的是另一个变量的内存地址。指针的使用可以让我们更高效地操作内存,实现动态内存分配等功能。 声明指针变量 要声明一个指针变量,需要在变量类型前加上星号(*)。例如…...
WordPress前端如何使用跟后台一样的Dashicons图标字体?
很多站长都喜欢在站点菜单或其他地方添加一些图标字体,常用的就是添加Font Awesome 图标和阿里巴巴矢量库图标iconfont。其实我们使用的 WordPress 本身就有一套管理员使用的官方图标字体 Dashicons,登录我们站点后台就能看到这些图标字体。那么有没有可…...
redisson实现延迟队列
1.pom引入redisson <dependency><groupId>org.redisson</groupId><artifactId>redisson</artifactId><version>3.20.1</version></dependency>整合springboot配置,这个可以参考之前整合redisson的文章,…...
【教程】N2N V3内网穿透、异地组网,包括Win/Linux/Android,包括不同内网实现adb远程连接
目录 一、背景 二、Linux 配置 并运行 N2N - Supernode (必选) 三、Linux -- 配置 并运行 N2N - 边缘节点配置 Edge(可选步骤) 四、Windows -- 配置 并运行 N2N - 边缘节点配置 Edge (可选步骤) (一)配置 TAP 虚拟网卡 (二)配置 N...
JavaAPI常用类01
目录 概述 Object类 Object类_toString() 代码展示 重写toString()方法前后输出 Object类_equals() 代码展示 重写equals()方法前后输出对比 Arrays类 equals()方法 Binary Search(二分查找) copyOf()方法 sort()方法 了解sort()方法 进阶…...
SpaceClaim流体域实战:从零到一构建仿真计算空间
1. 流体域基础概念与工程价值 第一次接触流体域这个概念时,我正对着电脑屏幕发愁——明明在物理世界里空气无处不在,为什么在仿真软件里非得画个"框"才能计算?这个看似简单的方盒子,后来成了我CFD生涯中最重要的"…...
TouchGal Galgame社区终极指南:一站式游戏资源管理与交流平台
TouchGal Galgame社区终极指南:一站式游戏资源管理与交流平台 【免费下载链接】kun-touchgal-next TouchGAL是立足于分享快乐的一站式Galgame文化社区, 为Gal爱好者提供一片净土! 项目地址: https://gitcode.com/gh_mirrors/ku/kun-touchgal-next 还在为寻找…...
LeetCode 125. Valid Palindrome 题解
LeetCode 125. Valid Palindrome 题解 题目描述 给定一个字符串,验证它是否是回文串,只考虑字母和数字字符,可以忽略字母的大小写。 示例 1: 输入: "A man, a plan, a canal: Panama" 输出: true 解释:"…...
告别繁琐!3步解锁教育资源获取新方式,效率提升10倍的高效工具
告别繁琐!3步解锁教育资源获取新方式,效率提升10倍的高效工具 【免费下载链接】tchMaterial-parser 国家中小学智慧教育平台 电子课本下载工具 项目地址: https://gitcode.com/GitHub_Trending/tc/tchMaterial-parser 在数字化学习与教学资源管理…...
使用usearch进行异常行为检测:基于用户行为向量的分析
使用usearch进行异常行为检测:基于用户行为向量的分析 【免费下载链接】usearch Fastest Open-Source Search & Clustering engine for Vectors & 🔜 Strings in C, C, Python, JavaScript, Rust, Java, Objective-C, Swift, C#, GoLang, and …...
移动热源坐标参数
comsol激光熔覆仿真模型,热流耦合,包含马兰戈尼非等温模激光熔覆工艺仿真里有个特有意思的物理现象——熔池表面会出现类似水波纹的流动轨迹。这可不是普通的热胀冷缩,而是马兰戈尼效应在金属熔液里跳"物理芭蕾"。咱们今天就用COMS…...
零配置部署Wan2.2-I2V-A14B:RTX4090D优化镜像实战,快速生成高质量视频
零配置部署Wan2.2-I2V-A14B:RTX4090D优化镜像实战,快速生成高质量视频 1. 开箱即用的视频生成解决方案 想象一下,你只需要一条简单的文本描述,就能在几分钟内生成一段高清视频——夕阳下的海浪拍打着沙滩,海鸥在低空…...
别再只靠密码了!手把手教你用Gpg4win给邮件和文件加把‘数字锁’(附Kleopatra实战截图)
别再只靠密码了!手把手教你用Gpg4win给邮件和文件加把"数字锁" 你是否经常担心重要文件被他人窥探?或是害怕商务邮件在传输过程中遭人篡改?在这个数据泄露频发的时代,仅靠密码保护敏感信息已经远远不够。今天ÿ…...
终极指南:用Kronos金融大模型5步构建你的量化交易系统
终极指南:用Kronos金融大模型5步构建你的量化交易系统 【免费下载链接】Kronos Kronos: A Foundation Model for the Language of Financial Markets 项目地址: https://gitcode.com/GitHub_Trending/kronos14/Kronos Kronos是首个专为金融市场设计的开源基础…...
MiniCPM-o-4.5-nvidia-FlagOS与Claude对比分析:在复杂推理任务上的差异化表现
MiniCPM-o-4.5-nvidia-FlagOS与Claude对比分析:在复杂推理任务上的差异化表现 最近在AI圈子里,关于不同模型在复杂推理任务上的表现,讨论得挺热闹的。特别是像MiniCPM-o-4.5-nvidia-FlagOS(后面简称MiniCPM)和Claude这…...
