Mysql扫盲

【网络安全的神秘世界】解决dvwa靶场报错:Illegal mix of collations for operation ‘UNION‘ 我的 information_schema 使用的是 utf8_general_ci。请根据您的实际情况调整字符集。这通常意味着在执行 UNION 操作时,不同字符集的数据发生了混合,导致冲突。修改字符集设置后,重启 MySQL 服务以应用更改,再次测试一下发现成功。查看 information_schema 的字符集。修改 DVWA 数据库字符集。 阅读详情

锁

InnoDB行锁实现

InnoDB行锁是通过给索引加锁实现的。与Oracle,Oracle是直接对数据行加锁来实现的。InnoDB这种行锁实现方式意味着:只有通过索引检索数据才使用行锁,否则,InnoDB使用表锁。

索引

索引失效场景

  • 组合索引未使用第一列或左侧相邻列
    如:abc索引。where b = ?,where a = ? and c = ?
  • 范围查询列可以用到索引,后续列无法用到(组合索引)
    如:(>、<、between、like) 其后索引失效
  • 隐式类型转换
  • like “%张”,索引失效。like “张%”索引生效
  • or 语句前后没有同时使用索引
  • where中索引列有运算,或者索引列使用了函数
  • where中在索引字段上使用not,<>,!=
    优化:key<>0 改为 key>0 or key<0,可使用索引
  • 在索引列上使用 IS NULL 或 IS NOT NULL操作
    优化:例如,数字类型,判断大于0,字符串类型设置一个默认值,判断是否等于默认值即可
    如果一个 Like 语句的查询条件以通配符%起始,则索引失效。

如:
%zhang 或 %zhang% 不使用索引
zhang% 使用索引

复合索引:

当创建a,b,c联合索引时,相当于创建了a单列索引,a,b联合索引以及a,b,c联合索引三种
使用(a,c)检索时,a使用索引,c普通(无论条件顺序,mysql优化器会先检索有索引的条件)

事务

脏读、不可重复读、幻读

脏读: 读取到了其他事务未提交的数据
不可重复度: 并发更新时,另一事务前后查询相同数据时的结果不符合预期
幻读: 并发新增、删除这种会产生数量变化的操作时,另一事务前后查询相同数据时,结果不符合预期

事务隔离级别对比

读未提交、读已提交、可重复度、串行化

事务类型脏读可能性不可重复度读可能性幻读可能性加锁读
READ UNCOMMITTED✔✔✔✔
READ COMMITTED×✔✔✔
REPEATABLE READ××✔✔
SERIALIZABLE×××✔

MVCC(多版本并发控制)

在这里插入图片描述

  • Mysql InnoDB 引擎下,读已提交(RC)、可重复读(RR)基于MVCC进行并发事务控制
  • MVCC是基于UNDO_LOG版本链中数据版本对并发事务进行访问
  • InnoDB会在表中增加TRX_ID、DB_ROLL_PTR两个字段,分别记录当前事务的编号、执行上一版本的指针
  • UNDO_LOG版本链不是立即删除,确保版本链数据不再被引用后才进行删除

ReadView

ReadView是一种数据结构,包含4个字段:

  • m_ids:当前活跃的事务编号集合
  • min_trx_id:最小活跃事务编号
  • max_trx_id:预分配事务编号,当前最大事务编号+1
  • creator_trx_id:ReadView创建者的事务编号

快照读、当前读:

  • ReadView 是“快照度”时MVCC提取数据的依据
  • “快照度”,普通Select查询语句
  • “当前读”,执行下列语句时读取数据的方式
    Insert、Update、Delete、Select…for update、Select…lock in share mode

异同:

  • 读已提交(RC):每一次执行快照读时,生成ReadView
  • 可重复读(RR):仅在第一次执行快照读时生成ReadView,后续快照读复用
    存在特殊情况(两个快照读之间存在“当前读”时,会重新生成ReadView)
  • 快照读之间的“当前读”包含其他事务新增、删除的数据,则会出现幻读
    “RR” 解决了不可重复读,未解决幻读

SQL优化

执行计划

说明:https://dev.mysql.com/doc/refman/8.0/en/explain-output.html
在这里插入图片描述
说明:
在这里插入图片描述

(待续。。。)

  • 普通索引关联主键索引,最后根据主键索引查找数据
从零构建2.4G无线通信系统:MSPM0G3507与NRF24L01的深度协同设计 本文详细介绍了基于MSPM0G3507微控制器与NRF24L01射频模块构建2.4G无线通信系统的深度协同设计方案。内容涵盖系统架构、SPI通信优化、功耗管理、抗干扰机制及中断/DMA高效利用,为工业物联网应用提供高可靠、低功耗的无线传输解决方案。 阅读详情

相关推荐

代号OneNET02 STM32+ESP8266 WIFI系列-第2节-STM32单片机通过ESP8266连接WIFI访问OneNET OTA服务器实现SOTA远程程序升级

第2节-STM32单片机通过ESP8266连接WIFI访问OneNET OTA服务器实现SOTA远程程序升级,这一节主要是实现通过OneNET OTA服务器将需要更新的程序远程下载到STM32单片机,这一节主要是引导程序和应用程序的讲解。

weixin_44862509的博客 1905

mysql扫盲篇_MySql基础知识点扫盲

MySql1、MySql的基本概念1.1、客户端与数据库服务器的关系客户机--服务器应用分为两个不同的部分,服务器部分是负责所有数据访问和处理的一个软件,这个软件所在的计算机成为数据库服务器。与数据打交道的只有服务器软件,关于数据、数据的添加、删除和数据的更新的所有请求都在服务器软件来完成,这些请求和更改来自客户机软件的计算机。客户机是与用户打交道的软件。列如:你请求一个按字母排序的列出的产品表,...

weixin_34460380的博客 360

解决 NLPIR (中科院分词) License 过期问题

因为学习需要,使用到了中文分词技术,网上搜索一番,最终选择了名气比较大的中科院分词器(NLPIR/ICTCLAS)。 用了几个月之后突然报错: E:\code\URLClassifier\Data\NLPIR.user Not valid license or your license expired! Please feel free to contact pipy_zhan

勇敢向前冲 1万+

MySQL扫盲

MySQL扫盲 目录 1. 查询 1.1 基本查询 2. 查重的两种方法 1. 查询 1.1 基本查询 limit offset length,查询从offset开始length长度的数据行 人数和订单表【http://www.w3school.com.cn/sql/sql_join_left.asp】 inner join==join...

xueyefengqiao 289

基于Simulink的输入-输出线性化精确转矩控制

本文详细介绍了基于Simulink的永磁同步电机(PMSM)输入-输出线性化(IOL)精确转矩控制方法。针对传统解耦控制在非线性转矩特性下的局限性,通过建立PMSM非线性状态空间模型,设计IOL控制器将系统转化为线性输入-输出映射。文章包含系统原理推导、Simulink建模步骤、参数整定方法和仿真结果分析,验证了IOL在高动态、宽速域工况下的优越性能(转矩误差降低90%)。最后提出了工程实现要点和扩展应用方向,为开发高精度电机驱动系统提供了实用指导。

xiaoheshang_123的博客 304

立创EDA开源项目:小北极冰冰杯(夏)——基于ESP32-C3的智能半导体制冷杯硬件设计与功能解析

本文详细解析了基于ESP32-C3的智能半导体制冷杯——小北极冰冰杯的硬件设计与核心功能。项目利用半导体制冷片实现快速降温,并集成了PWM智能调速散热、四路温度监控、杯具检测及PD/DC双电源输入等实用功能。文章深入剖析了其硬件架构、控制逻辑及实战注意事项,为嵌入式开发与智能硬件爱好者提供了宝贵的参考。

weixin_33245447的博客 271

mysql基础知识扫盲

本篇主要介绍关于mysql的一些非常基础的知识,为后面的sql优化做准备。 一:连接mysql 关于mysql的下载和安装我在这里就不说了,第一步我们要连接我们的mysql服务器,打开cmd命令切换到你安装MySQL Server 的bin目录下,然后输入mysql -h localhost -u root -p 其中-h 表示你的主机地址(本机就是localhost,记住不要带端口号) -...

weixin_33814685的博客 162

DeepSeek 框架和技术栈分析

DeepSeek 诞生于对更高效、更强大的深度学习计算和模型训练的追求。随着深度学习模型的规模不断增大,如大型语言模型(LLMs)和复杂的视觉模型,传统的框架在处理这些大规模模型时面临着性能瓶颈和资源利用效率低下的问题。DeepSeek 旨在解决这些问题,通过优化框架设计和采用先进的技术栈,实现更高效的模型训练和推理,同时降低计算成本。

yournameplease的专栏 1512

mysql——知识点扫盲个人向(2019-05-31更新)

StayHungry 求知若渴 StayFoolish 放低姿态 目录 1.having 2.INNER JOIN 3.SELECT DISTINCT 4.如何选出来一条数据呢 5.sql语句中“!=”与“<>”的区别 6.char与varchar的区别 7.char与varchar的具体细节?比如去空格操作,还有一些理解 8. blog类型是? 9.blog...

新一的技术笔记 404

用Matlab搞定Delta并联机器人运动学:从建模到正逆解完整流程(附代码)

本文详细介绍了如何使用Matlab实现Delta并联机器人的运动学分析,包括几何建模、正逆解求解及可视化验证。通过符号计算和数值迭代法,解决非线性方程组问题,并提供完整代码示例,帮助读者快速掌握Delta机器人的运动学计算与应用。

weixin_30955617的博客 177

MBD-从一个示例看代码生成过程(rtw文件、TLC语言)

大概介绍了MBD代码生成流程,rtw文件、TLC语言

小胡同学的工程师学习之路 4214

mysql扫盲篇_MySQL小白扫盲(一)

1.打开【运行】快捷键:win+R  输入cmd回车-->打开dos提示符状态2.cmd 中连接mysql时报'mysql'不是内部或外部命令,也不是可运行的程序或批处理文件,该怎么办?解决办法:配置环境变量,切换至MySQL安装目录下的bin文件切换过后即可登陆 mysql -u root -p3.数据库基础操作创建数据库:CREATE DATABASE [IF NOT EXISTS] ...

weixin_36318306的博客 208

ProgLoss+STAL 技术详解:YOLO26 小目标检测增强方案

本文提出了一种基于ProgLoss渐进式损失函数和STAL小目标感知标签分配的YOLO26增强方案。针对小目标检测中特征信息少、正负样本不平衡等难题,STAL通过尺度感知的标签分配策略动态调整候选样本数量和IoU阈值,为小目标分配更多正样本;ProgLoss则根据训练阶段动态调整分类和回归损失的权重,早期侧重定位能力,后期加强分类精度。实验表明,该组合方案显著提升了小目标检测性能,在COCO数据集上小目标AP达到38.2%,比基线提升6.5个百分点。该方法为遥感、监控等场景的小目标检测提供了有效解决方案。

一键难忘的博客 1285

MySQL扫盲 -- 授权方式

MySQL扫盲 -- 授权方式作者:王猛 (HeartIcy@163.com)很多人都不理解MySQL的授权方式,主要原因是没有中文资料别无其他!我不想嘲笑谁,但是我认为有必要搞清楚这一重要的因素。国际官司我们已经吃亏太多了,我不想这变成笑柄。当前,MySQL采用双重授权(Dual Licensed),他们是GPL和MySQL AB制定的商业许可协议。如果你在一个遵循GPL的自由(开源

swotcoder的专栏 2174

数学建模模型总结

这是本人在两年内准备参加数学建模竞赛搜集到的模型资料,已经经过了本人的筛选和整理,希望能够对准备参加数学建模竞赛的学弟学妹们提供一些帮助!

锂电池充电器电路设计 里面有电路

锂电池充电器电路设计 里面有电路 3.7V升压到5V电路设计。

MySQL Partition扫盲

from: 三国演义开篇一语道破:合久必分!MySQL的使用亦是如此,面对应用中越来越庞大的数据量,最时髦的解决方案是Shard,不过它的复杂性并不是每个程序员都能驾驭的,如果把架构的演变比作生命的进化,那么Shard可以看做是哺乳动物,很多架构最后之所以失败,就是因为它们步子迈得太大,想从原始生命直接进化成哺乳动物,殊不知这中间还有爬行动物等必经阶段。 在MySQL没有支持

sunvince的专栏 5324

复分析 阿尔福斯(Ahlfors) 第三版答案 英文

答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案

Mysql基础扫盲

文章目录Mysql基础扫盲Mysql默认的数据库引擎MyISAM和InnoDB区别索引的概念及分类数据库事务事物的四大特性(ACID)并发事务带来哪些问题?事务隔离级别有哪些?MySQL的默认隔离级别是?锁机制与InnoDB锁算法 Mysql基础扫盲 Mysql默认的数据库引擎   MyISAM是MySQL的默认数据库引擎(5.5版之前)。虽然性能极佳,而且提供了大量的特性,包括全文索引、压缩、空...

bruce_xia6116的博客 434

OV9734 DATASHEET,完整规格书

OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等

Mysql锁的快速扫盲

快速帮助小白了解Mysql 的锁以及使用场景

qq_41699731的博客 1060

Mysql 索引快速扫盲

快速了解 Mysql 索引

qq_41699731的博客 819

Mysql索引扫盲总结

什么是索引?索引为什么查询快,索引的数据结构是什么?聚簇索引/非聚簇索引区别?什么是覆盖索引?唯一索引/普通索引?单列索引/联合索引区别?Full-in...

HollisChuang's Blog 982

mysql 索引扫盲篇

项目中有个记录设备路径信息的表数据越来越大,到目前为止已经超过20w数据的信息了,才几天功夫发现有些不得了,终端响应速度非常慢,所以就赶紧学习一下数据库中的索引知识,来缓解一下查询速度。 基本概念 索引是一种特殊的文件,按照某种算法记录了数据库表中数据的关键信息,通过查找该文件,能达到降低查询时间的目的。 索引用于快速找出某列中有特定值的行,不使用索引,MySQL必须从第一条记录开始完整读表,知道...

成长的烧年 2164

MYSQL使用命令,mysql扫盲

MySQL实用命令Wikipedia,自由的百科全书一) 连接MYSQL: 格式: mysql -h主机地址 -u用户名 -p用户密码 1、例1:连接到本机上的MYSQL 首先在打开DOS窗口,然后进入mysql安装目录下的bin目录下,例如: D:/mysql/bin,再键入命令mysql -uroot -p,回车后提示你输密码,如果刚安装好MYSQL

366

mysql扫盲篇_MySQL之Explain扫盲班实战

Explain命令用于查看执行效果。虽然这个命令只能搭配select类型语句使用,如果你想查看update,delete类型语句中的索引效果,也不是太难的事情,只要保持条件不变,把类型转换成select就行了。explain的语法如下:explain [extended] select … from … where …如果使用了extended,那么在执行完explain语句后,可以使用show ...

weixin_34430334的博客 212

扫盲--mysql总结

1、mysql主从同步原理: 首先,从库生成两个线程,一个是I\o线程,一个是SQL线程,i\o线程通过从库配置文件的信息主动去请求主库的binlog,并将获取到的binlog写在从库的relay log(中继日志),主库会专门生成一个dump线程,用来进行将binlog信息传送给从库的中继日志中。然后SQL线程会读取RELay log将日志信息转化为数据库信息,从而保持数据一致。 二、my...

woaizxy123的博客 236
上一篇: Mysql行列转置
下一篇: Tomcat配置与优化(内存、并发、管理)与性能监控
confident.man
博客等级 码龄11年 4粉丝 9原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值