Mysql学习笔记系列(二)

MySQL学习笔记 数据库:DB(DataBase)数据仓库,软件,安装在操作系统之上存储数据,管理数据DQL(Data Query Language)是 SQL 的核心组成部分,专门用于从数据库中检索数据。最基本的 DQL 语句是SELECT,其灵活的语法结构支持复杂的数据筛选、聚合和排序。2、SELECT 基本语法。 阅读详情

本篇是结合文章(一)继续展开,具体的一内容可以到博客里面浏览。

索引失效

        1.违反最左前缀法则 如果索引了多列,要遵守最左前缀法则。指的是查询从索引的最左前列开始,并且不跳过索引中的列。

        2.范围查询右边的列,不能使用索引。

        3.不要在索引列上进行运算操作, 索引将失效.

        4.字符串不加单引号,造成索引失效。

        5.以%开头的Like模糊查询,索引失效。如果仅仅是尾部模糊匹配,索引不会失效。如果是头部模糊匹配,索引失效。

sql优化

表的设计优化

1.设置合适的数值(tinyint   int   bigint),要根据实际情况选择

2.设置合适的字符串类型(char和varchar)char定长效率高,varchar可变长度,效率稍低

索引优化

sql语句优化

1.SELECT语句务必指明字段名称(避免直接使用select * )

2.SQL语句要避免造成索引失效的写法

3.尽量用union all代替union  , union会多一次过滤,效率低

4.避免在where子句中对字段进行表达式操作

5.Join优化 能用inner join 就不用left join right join,如必须使用 一定要以小表为驱动,       内连接会对两个表进行优化,优先把小表放到外边,把大表放到里边。left join 或 right join,不会重新调整顺序

主从分离,读写分离

如果数据库的使用场景读的操作比较多的时候,为了避免写的操作所造成的性能影响 可以采用读写分离的架构。 读写分离解决的是,数据库的写入,影响了查询的效率

分库分表

事务

ACID

原子性(Atomicity):事务是不可分割的最小操作单元,要么全部成功,要么全部失败。

一致性(Consistency):事务完成时,必须使所有的数据都保持一致状态。

隔离性(Isolation):数据库系统提供的隔离机制,保证事务在不受外部并发操作影响的独立环境下运行。

持久性(Durability):事务一旦提交或回滚,它对数据库中的数据的改变就是永久的。

并发事务问题

脏读:一个事务读到另外一个事务还没有提交的数据。

幻读:一个事务按照条件查询数据时,没有对应的数据行,但是在插入数据时,又发现这行数据已经存在,好像出现了”幻影”。

不可重复读:一个事务先后读取同一条记录,但两次读取的数据不同,称之为不可重复读。

隔离级别:

第一个是,未提交读(read uncommitted)它解决不了刚才提出的所有问题,一般项目中也不用这个。第二个是读已提交(read committed)它能解决脏读的问题的,但是解决不了不可重复读和幻读。第三个是可重复读(repeatable read)它能解决脏读和不可重复读,但是解决不了幻读,这个也是mysql默认的隔离级别。第四个是串行化(serializable)它可以解决刚才提出来的所有问题,但是由于让是事务串行执行的,性能比较低。所以,一般使用的都是mysql默认的隔离级别:可重复读

undo log和redo log

undo log

重做日志,记录的是事务提交时数据页的物理修改,是用来实现事务的持久性。 该日志文件由两部分组成:重做日志缓冲(redo log buffer)以及重做日志文件(redo log file),前者是在内存中,后者在磁盘中。当事务提交之后会把所有修改信息都存到该日志文件中, 用于在刷新脏页到磁盘,发生错误时, 进行数据恢复使用。

redo log

undo log可以实现事务的一致性和原子性。

回滚日志,用于记录数据被修改前的信息 , 作用包含两个 : 提供回滚 和 MVCC(多版本并发控制) 。undo log和redo log记录物理日志不一样,它是逻辑日志。 可以认为当delete一条记录时,undo log中会记录一条对应的insert记录,反之亦然, 当update一条记录时,它记录一条对应相反的update记录。当执行rollback时,就可以从undo log中的逻辑记录读取到相应的内容并进行回滚。

区别

redo log: 记录的是数据页的物理变化,服务宕机可用来同步数据

undo log :记录的是逻辑日志,当事务回滚时,通过逆操作恢复原来的数据

redo log保证了事务的持久性,undo log保证了事务的原子性和一致性。

这里两个log保证了一致性,原子性和持久性,那么事务中的隔离性是由排他锁来实现的,也就是锁单位可以是行数据。

MVCC

全称 Multi-Version Concurrency Control,多版本并发控制。指维护一个数据的多个版本,使得读写操作没有冲突 MVCC的具体实现,主要依赖于数据库记录中的隐式字段、undo log日志、readView。

undolog:

回滚日志,在insert、update、delete的时候产生的便于数据回滚的日志。 当insert的时候,产生的undo log日志只在回滚时需要,在事务提交后,可被立即删除。 而update、delete的时候,产生的undo log日志不仅在回滚时需要,mvcc版本访问也需要,不会立即被删除

详细推导波特图增益和相位曲线 文章来源:https://mp.weixin.qq.com/s/UCy9mRRok5Hc9qHq3qde5g 今天这篇文章想把近段时间关于波特图方面学习的内容整理一下。波特图将会是梳理闭环控制这个系列的开始。目前的计划是,以无源器件为基础,然后结合运放,再过渡到开关电源的环路控制方面。如果对这方面感兴趣的朋友,可以持续一起学习起来,目标就是掌握开关电源的闭环控制。 1. 什么是波特图? 波特图最常见的应用是在线性非时变的系统中,用于对传递函数的增益和相位进行分析,从而判断出系统随频率的响应是否稳定。因此,波 阅读详情

相关推荐

BRepNet与图神经网络融合:提升3D CAD加工特征识别的精度与泛化能力

本文探讨了BRepNet与图神经网络(GNN)融合技术如何显著提升3D CAD加工特征识别的精度与泛化能力。通过将CAD模型视为图结构,利用GNN的消息传递机制增强对复杂拓扑关系的理解,并结合BRepNet的局部特征提取,该融合方法在MFCAD++数据集上实现了高达99.53%的准确率,有效解决了传统方法在处理复杂相交特征时的局限性,为智能制造提供了关键技术支撑。

android的专栏 774

mysql表添加字段sql语句

AFTER old_column:新增字段添加在old_column字段后面,不写会默认表尾部;VARCHAR(100):字段类型为varchar,长度100;使用ALTER TABLE向MySQL数据库的表中添加字段。column_name:需要添加的字段名;DEFAULT NULL:默认值NULL;table_name :表名;

qq_39610585的博客 4991

基于用户的协同过滤算法(userCF)

1.定义 userCF:当一个用户A需要个性化推荐时,可以先找到和他有相似兴趣的其他用户,然后把那些用户喜欢的、而用户A没有听说过的物品推荐给A。这种方法称为基于用户的协同过滤算法。 基于用户的协同过滤算法主要包括两个步骤: 2.第一步:找到和目标用户兴趣相似的用户集合。 利用行为的相似度计算兴趣的相似度。给定用户u和用户v,令N(u)表示用户u曾经有过正反馈的物品集合,令N(v)为用户v曾经有过...

jiangdongxiaobawang的博客 1万+

MySQL中如何增加字段SQL语句

【代码】MySQL中如何增加字段SQL语句。

weixin_43536460的博客 2468

机器学习ROC曲线中的阈值thresholds

在ROC曲线上的不同点对应于不同的阈值。根据任务的具体要求,可以选择合适的阈值,以达到平衡召回率和误报率,或者根据具体应用场景调整模型的工作点。,表示样本属于正例的概率。这个概率值可以被截断为二元分类的决策,通过选择一个阈值来决定样本是被分类为正例还是负例。通过改变阈值,可以得到不同的真正例率(TPR)和假正例率(FPR),从而绘制出ROC曲线。总体来说,ROC曲线提供了模型在不同阈值下的性能综合情况,帮助分析模型的分类能力。通常来说,随着阈值的增加,TPR会减小,而FPR会增加。ROC曲线的绘制涉及。

行子的博客 3653

CANoe的安装教程

CANoe的安装教程

weixin_59090531的博客 1万+

mysql添加字段

其中,table_name 表示要添加字段的表名,column_name 表示要添加的字段名,data_type 表示该字段的数据类型。MySQL添加字段有两种方式:使用 ALTER TABLE 语句或使用 MySQL Workbench 工具。要添加一个新的字段,需要指定表名、字段名和数据类型。总之,以上是添加字段的两种常见方法。需要注意,在添加字段时可能会影响到表格的约束和索引,因此应谨慎操作并备份数据。(5)在显示的对话框中输入新字段的名称、数据类型和其他属性,并点击 “Apply” 完成操作。

weixin_51378457的博客 2万+

告别懵圈!用CANoe 5640手把手带你跑通SomeIP TC8测试(附脚本思路)

本文详细解析了基于CANoe 5640的SomeIP TC8测试全流程,从环境搭建到结果分析,特别针对车载以太网测试中的SomeIP协议测试难点提供实战指南。通过典型测试用例SOMEIP_TEST_61,手把手教你配置CANoe工程、编写CAPL脚本,并解决常见问题,助力开发者高效完成协议验证。

weixin_30791095的博客 360

MySQL增加字段SQL语句

使用ALTER TABLE向MySQL数据库的表中添加字段, -- 向buildBaseInfo中添加字段 ALTER TABLE table_name ADD COLUMN column_name VARCHAR(100) DEFAULT NULL COMMENT '新加字段' AFTER old_column; 语句内容: table_name :表明; column_name:需要添加的字段名; VARCHAR(100):字段类型为varchar,长度100; DEFAULT NULL:默认值NUL

喜欢吃糖丶的博客 3万+

【项目案例】前后端分离项目 【Web图书管理系统 】SpringBoot + Vue + Element UI + Mysql

Web图书管理系统

激流丶的博客 5393

ubuntu18.04安装Nvidia显卡驱动后黑屏及网络、蓝牙驱动消失的解决方案

ubuntu18.04安装Nvidia显卡驱动后黑屏及网络、蓝牙驱动消失的解决方案

weixin_40735291的博客 6617

【MySQL学习笔记】系列二:MySQL环境搭建(卸载、下载、安装、配置、登录)

本文摘要:本篇主要讲述MySQL环境搭建(卸载、下载、安装、配置、登录)以及在MySQL安装过程中常见的问题。 💞💞觉得文章还不错的话欢迎大家点赞👍➕收藏⭐️➕评论💬支持博主🤞

请你喝杯Java 755

Apache Kylin 命令注入漏洞复现(CVE-2020-1956)

Apache Kylin 中的静态 API 存在安全漏洞,可以将os命令与用户输入字符串连接起来,攻击者可以在Kylin没有任何保护或验证的情况下执行任何os命令。

0xSec 1558

Mysql学习笔记(二)学完真可以出师系列第二弹

文章目录第五章5.1 视图5.2 子查询5.3 关联子查询 第五章 5.1 视图 概念:从SQL的角度来看,视图和表是相同的,两者的区别在于表中保存的是实 际的数据,而视图中保存的是SELECT语句(视图本身并不存储数据)。 优点 第一,由于视图并不存储数据,因此可以节省存储空间 第二,可以进行调用select语句,避免重复书写。可以将频繁使用的 SELECT 语句保存成视图,这样就不用每次都重新书写了。创建好视图之后,只需在 SELECT 语句中进行调用,就可以方便地得到想要的结果了。特别是在进行汇总

qq_41721660的博客 728

汉书HE8,好用的汇编代码编写工具

汉书HE8,好用的汇编代码编写工具早期编写汇编代码所用功能强大

迈瑞BS系列全自动生化分析仪LIS协议接口手册(内含HL7和ASTM)

迈瑞BS系列全自动生化分析仪LIS协议接口手册,内含HL7和ASTM)

MySQL 学习笔记②

本博客内容概述:存储引擎、索引、SQL 优化、视图 / 存储过程 / 触发器、锁、InnoDB 引擎、MySQL 管理。

做笔记,记录学习中遇到的问题。 5756

Statistics and Machine Learning Toolbox

Statistics and Machine Learning Toolbox(带书签),MATLAB统计学习工具

MySQL系列之体系结构原理学习笔记

MySQL系列之体系结构原理学习笔记 引用来自官网的图,MySQL Server架构从上到下依次为网络连接层(Connectors)、服务层(MySQL Server)、存储引擎层(Plugable Storage Engines)、系统文件层(File System)

Nicky's blog 9026

廖雪峰Python教程[完整版]

廖雪峰的python教程整理的,已经排好版了,而且还是完整的,适合小白

MySQL系列之事务编程学习笔记

MySQL基础之事务编程学习笔记 在学习《MySQL技术内幕:SQL编程》一书,并做了笔记。本博客内容是自己学了《MySQL技术内幕:SQL编程》一章根据自己的理解做的笔记,内容和书本并不一致,不过书本实验都经过自己验证,基于MySQL5.7版本。做笔记的目的是方便自己复习,同时分享出来或许对其他人或许有点帮助 提到事务肯定会想到事务的4个特性ACID,要保证业务的正常使用,必须保证ACID,AC...

Nicky's blog 6302

MySQL系列之索引知识学习笔记

继我的上篇博客:Oracle索引知识学习笔记之后,再记录一篇MySQL的索引知识学习笔记,本博客是我在学习尚硅谷的学习教程后,做的笔记,当然我不是为了所谓宣传,仅仅是学习记录的笔记,本来可以不分享出来,分享出来的目录仅仅可以给网上的学习者参考学习,同时写在csdn比较方便,支持图片上传,也方便自己以后查找复习 文章目录一、索引的概念二、索引分类三、索引用法四 、索引架构简介五、索引适用的情况六、索...

Nicky's blog 3886

一生挚友redo log、binlog《死磕MySQL系列 二》

一生挚友redo log、binlog

咔咔博客 3698

MySQL系列之执行计划学习笔记

继上一篇博客《MySQL的索引知识学习笔记》之后,我再记录一篇MySQL执行计划方面的博客,本博客是我在学习尚硅谷的学习教程后,做的笔记,当然我不是为了所谓宣传,仅仅是学习记录的笔记。本来可以不分享出来,不过,分享出来的笔记不仅可以给网上的学习者参考学习,同时写在csdn比较方便,可以支持图片上传,也方便自己以后查找复习 附录:我创建的数据库方面的专栏 SQL调优方面的专栏 MySQL知识方面的...

Nicky's blog 3917

MySQL 学习笔记(二)

DBA有时会遇到操作一张大表,发现操作时间过长或者影响在线业务了,想要回退大表操作。对于提升大事务回滚效率,官方提供了两种方法: 一是增加innodb_buffer_pool_size参数大小,二是合理利用innodb_force_recovery=3参数,跳过事务回滚过程。第一种方式比较温和,innodb_buffer_pool_size参数是可以动态调整的,可行性也较高。第二种方式相较之下较暴力,但效果较好。 第二种方法操作流程如下: kill -9 MySQL 进程;备份MySQL数据及日志目录;为M

hongjian006的博客 1040

MySQL学习笔记01【数据库概念、MySQL安装与使用】

MySQL数据库软件 MySQL数据库的安装 MySQL数据库的卸载 MySQL服务(启动与关闭) 登录 本地/异地 MySQL MySQL安装目录 MySQL数据目录

upward 861

MySQL学习笔记(目录)

MySQL在全球范围内被广泛使用,众多知名网站和应用,如Facebook、Twitter、YouTube等都依赖MySQL存储数据。在求职面试中,MySQL知识几乎是必考内容,掌握MySQL能显著提升个人竞争力‌1。MySQL采用双授权政策,既有商业版也有免费的社区版。对于预算有限的个人开发者、创业公司乃至大型企业来说,MySQL是一个极具成本效益的选择‌12。MySQL体积小、速度快,优化了SQL查询算法,有效提高了查询速度。同时,它还支持多线程,能充分利用CPU资源,提供高效的数据处理能力‌2。

liuhm的博客 725

MySQL系列之事务日志Redo log学习笔记

Redo log:被称之为重做日志,是在数据库发生意外时,进行数据恢复,redo log会备份是事务执行过程中的修改数据,redo log备份的是事务过程中最新的数据位置

Nicky's blog 6831

MySql学习系列(二)

MySql学习系列(二)2.1 MySQL 基础 (二)- 表操作#学习内容#1、MySQL表数据类型2、用SQL语句创建表3、用SQL语句向表中添加数据4、用SQL语句删除表5、用SQL语句修改表#作业#项目三 (超过5名学生的课(难度:简单))项目四:交换工资(难度:简单)2.2 MySQL 基础 (三)- 表联结#学习内容#项目五:组合两张表 (难度:简单)项目六:删除重复的邮箱(难度:简单...

一个机器学习的学习之旅 1826

MYSQL学习笔记

数据定义语言。

wmwq_dk的博客 2442
上一篇: Mysql学习笔记系列(一)
下一篇: Spring系列学习笔记->Spring篇(一)
happystudy_neu
博客等级 码龄4年 1140粉丝 43原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值