MySql
文章平均质量分 66
MySql
小俱的一步步
莫忧莫惧莫回头
展开
-
MySQL如何定位慢查询?如何分析这条慢查询?
配置完毕之后,通过以下指令重新启动MVSQL服务器进行测试,查看慢日志文件中记录的信息/var/lib/mysql/localhost-slow.log。性能由好到差为 NULL(未使用表)、system、const、eq ref、ref、range、index、all。聚合查询(常用的聚合函数有:MAX()、MIN()、COUNT()、SUM()、AVG())。聚合查询、多表查询、表数据过大查询可以使用Explain/DESC(desc) 进行查询。type字段类型:sql的连接的类型。原创 2024-04-12 20:15:51 · 480 阅读 · 0 评论 -
MySQL索引下推
索引下推,服务层把查询工作下推到引擎层去处理 。在引擎层查询 ‘ % 张’,查到后将记录交给server层检查是否满足where条件。导致在引擎层查询出不必要的记录,例如“张飞”索引下推:index Condition Pushdown,简称ICP,是MySQL5.6版本的新特性。效果:减少回表查询次数,提高查询效率,节约IO开销。即服务层把查询工作下推到引擎层去处理。原创 2024-04-01 08:26:32 · 772 阅读 · 0 评论 -
MySQL中的三种日志
它是为了防⽌机器故障导致数据丢失的物理⽇志,它⽤于记录数据⻚做了什么修改,每当执⾏⼀ 条事务就会产⽣这样的⼀条或多条物理⽇志,然后通过。这样,当 MySQL 需要回滚时,通过重放 undolog 就可以回滚事务。)操作,包括对表结构的更改、数据的插⼊、修改、删除等等。层⽣成的的⽇志,主要⽤于数据备份和主从复制。⽇志⽂件,保存的是全量的⽇志,⽤于备份恢复和主从复制。中的⼆进制⽇志,但是它们的作⽤和实现⽅式有所不同。是在事务提交后⽣成的,因此可以⽤于恢复数据库。)⽤于恢复数据,保证数据的⼀致性和持久性。原创 2024-03-31 16:39:57 · 599 阅读 · 0 评论 -
【MySQL】MVCC多版本并发控制
Read View 在特定时刻为事务创建的一个快照,该快照包含了在该时刻所有未提交事务的事务标识符,以及其他一些辅助信息。它通过在读写操作期间保存多个数据版本,以提供并发事务间的隔离性,从而避免了传统的锁机制所带来的资源争用和阻塞问题。:是指在一个事务中,读取的数据版本是在事务开始时已经存在的数据版本,而不是最新的数据版本。这种读取方式提供了事务在执行期间看到的数据视图的一致性,在 MVCC 机制中,每个事务的读操作都能看到事务开始之前的一致性数据快照,而不受其他并发事务的修改的影响。原创 2024-03-24 12:27:43 · 357 阅读 · 0 评论 -
【MySQL】覆盖索引
但是,当查询的结果集占表的总行数的很大一部分时,可能就不会走索引了,自动转换为全表扫描。字段的复合索引,这样在查询某个客户的订单总金额时,可以直接从索引中获取数据,无需访问实际的数据行。(订单总金额)等字段。如果我们经常需要查询某个客户的订单总金额,可以通过覆盖索引来优化这个查询。通过创建覆盖索引,数据库引擎可以直接使用索引来满足这个查询,而不需要再去读取。索引中已经包含了所有需要获取的字段的查询方式称为覆盖索引。表中的实际数据行,从而提高查询性能。的数据库表,包含订单信息,其中包括。原创 2024-03-24 11:26:16 · 723 阅读 · 0 评论 -
InnoDB和MyISAM存储引擎
在满足第二范式的基础上,消除非主键字段之间的传递依赖。它要求每个非主键字段只依赖于主键,而不依赖于其他非主键字段。这样可以避免数据表中的冗余数据,并确保数据的一致性和查询性能。在满足第一范式的前提下,要求非主键列完全依赖于主键。支持事务,行级锁(并发量大),外键约束,容量大,支持缓存,支撑主键自增,确保每列保持原子性,数据表中的所有字段都是不可分割的。全文检索,不存储表的总行数,需要sql逐行统计。不支持事务,不支持行锁,只有表锁并发量小,myisam存储了表的总行数,统计速度快。mysql默认存储引擎。原创 2024-03-12 17:43:20 · 976 阅读 · 0 评论 -
mysql中的锁
按照锁的粒度分表锁表级锁,增删改操作时,会给正张表加锁;myisam支持表级锁,innodb中默认没有使用表锁,特点:虽然加锁的开销小,但是并发性能低。间隙锁满足某些条件,获取某个区间,即使用范围条件,而不是相等条件检索,innodb为符合条件的已有数据记录加锁,对键值在条件范围内但并不存在的记录为间隙。行锁粒度最细的锁,表示只针对当前操作的行进行 加锁。行级锁能大大减少数据库操作的冲突。其加锁粒度最小,但加锁的开销也 最大。行级锁分为共享锁 和 排他锁。原创 2024-01-27 07:00:00 · 1307 阅读 · 10 评论 -
mysql数据库事务(事务设置、隔离级别、实现原理)
一次对数据库操作过程,有多条sql,视为一组,一次执行,一组sql要么都提交成功,要么都失败。例如下图,事务1不加for update 执行时,事务2添加一行记录后事务1不会幻读,当事务2提交后,事务1若有for update则会出现幻读。另一个事务正在更改数据,但还没有提交事务,该事物若读取数据,可能造成脏读,不可重复读,幻读。事务只能一个一个进行,即使一个事务写,另一个事务读不可以,但是读读可以,读写不可以。一个事务只能读到另一个事务提交后的数据,解决了脏读问题,但还存在不可重复读,幻读。原创 2024-01-25 22:12:51 · 1129 阅读 · 11 评论 -
[数据库]数据管理技术的发展阶段
20世纪50年代后期到60年代中期,计算机硬件外存有了磁盘,软件有了操作系统,在操作系统基础上建立了专门管理数据的软件文件系统,数据处理方式不进有批处理,还有联机实时处理。20世纪60年代后期开始,为了实现数据的统一管理,解决多用户多应用共享数据的需求,数据库技术应用而生,出现了统一管理数据的专门用软件——数据库管理系统。20世纪50年代中期以前,计算机硬件外存没有磁盘,软件没有操作系统,没有专门管理数据的软件,数据处理方式是批处理。原创 2023-09-24 11:47:02 · 436 阅读 · 2 评论 -
mysql基础
数据库作用:可以将数据持久地保存到本地,具有完整的管理系统统一管理,方便管理。SQL:结构化查询语言(Structure Query Language)用于和数据库通信的语言,不是某个数据库软件特有的,而是几乎所有的主流数据 库软件通用的语言。原创 2023-03-04 20:00:34 · 120 阅读 · 0 评论 -
leetcode-SQL入门
183. 从不订购的客户1873. 计算特殊奖金1084. 销售分析III1158. 市场分析 I原创 2023-03-19 23:45:00 · 95 阅读 · 0 评论