
mysql
文章平均质量分 82
weixin_37693463
这个作者很懒,什么都没留下…
展开
-
mysql学习笔记-多版本并发控制
在 MVCC机制中,多个事务对同一个行记录进行更新会产生多个历史快照,这些历史快照保存在 Undo Log里。如果一个事务想要查询这个行记录,需要读取哪个版本的行记录呢?这时就需要用到 ReadView 了,它帮我们解决了行的可见性问题。ReadView 就是事务A在使用MVCC机制进行快照读操作时产生的读视图。当事务启动时,会生成数据库系统当前的一个快照,InnoDB 为每个事务构造了一个数组,用来记录并维护系统当前活跃事务 的ID(“活跃”指的就是,启动了但还没提交)。原创 2025-02-19 10:46:36 · 373 阅读 · 0 评论 -
mysql学习笔记-锁
则先在 B+ 树中定位到这条记录的位置,然后获取记录的 X锁,将该记录彻底删除掉(就是把记录彻底移入垃圾链表),最后再插入一条新记录。这个定位待修改记录在B+树中位置的过程看成是一个获取X锁 的 锁定读 ,新插入的记录由 INSERT 操作提供的 隐式锁 进行保护。则先在 B+ 树中定位到这条记录的位置,然后再获取一下记录的 X锁,最后在原记录的位置进行修改操作。一般情况下,新插入一条记录的操作并不加锁,通过一种称之为 隐式锁 的结构来保护这条新插入的记录在本事务提交前不被别的事务访问。原创 2025-02-11 09:23:51 · 258 阅读 · 0 评论 -
mysql学习笔记-MySql事务日志&其他日志
undo log:是存储引擎层(innodb)生成的日志,记录的是 逻辑操作 日志,比如对某一行数据进行了INSERT语句操作,那么 undo log就记录一条与之相反的DELETE操作。3.事务已经提交并过期的数据(expired undo information):事务已经提交,而且数据保存时间已经超过undo retention参数指定的时间,属于已经过期的数据。主要为了保证数据的可靠性;redo log是物理日志,记录的是数据页的物理变化,undolog不是redo log的逆过程。原创 2025-02-05 16:06:01 · 794 阅读 · 0 评论 -
mysql学习笔记-事务基础知识
事务的隔离性是指一个事务的执行不能被其他事务干扰 ,即一个事务内部的操作及使用的数据对 并发 的其他事务是隔离的,并发执行的各个事务之间不能互相干扰。举例2、在数据表中我们将 姓名 字段设置为 唯一性约束,这时当事务进行提交或者事务发生回滚的时候,如果数据表中的姓名不唯一,就破坏了事务的一致性要求。ACID 是事务的四大特性,在这四个特性中,原子性是基础,隔离性是手段,一致性是约束条件,而持久性是我们的目的。步骤3:事务结束的状态:提交的状态(COMMIT)、中止的状态(ROLLBACK)原创 2025-01-24 15:57:50 · 632 阅读 · 0 评论 -
mysql学习笔记-数据库其他调优策略
第5步:使用 Redis 或 Memcached 作为缓存。第4步:优化物理查询(在这个部分中,我们需。要掌握的重点是对索引的创建和使用。第1步:选择适合的 DBMS。第3步:优化逻辑查询。原创 2025-01-24 11:33:04 · 229 阅读 · 0 评论 -
mysql学习笔记-数据库的设计规范
在关系型数据库中,关于数据表设计的基本原则、规则就称为范式。原创 2025-01-23 16:06:11 · 687 阅读 · 0 评论 -
mysql学习笔记-索引优化与查询优化
1.8 is null可以使用索引,is not null无法使用索引。因为classid 使用了范围条件,导致name索引没用上。1.4 计算、函数、类型转换(自动或手动)导致索引失效。不同的字符集进行比较前需要转换,会造成索引失效。1.10 OR前后存在非索引的列,索引失效。= 或者<>)索引失效。1.9 like以通配符%开头索引失效。1.6 范围条件右边的列索引失效。1.5 类型转换导致索引失效。1.1 全值匹配我最爱。1.2 最佳左前缀法则。原创 2025-01-20 23:10:50 · 355 阅读 · 0 评论 -
mysql学习笔记-性能分析工具的使用
MySOL的慢查询日志,用来记录在MySOL中响应时间超过阀值的语句,具体指运行时间超过long_query_time值的SQL,则会被记录到慢查询日志中。long_query_time的默认值为10,意思是运行10秒以上(不含10秒)的语句,认为是超出了我们的最大忍耐时间值。showProfile是MySQL提供的可以用来分析当前会话中SQL都做了什么、执行的资源消耗情况的工具,可用于sql调优的测量。如果不是调优需要的话,一般不建议启动该参数,因为开启慢查询日志会或多或少带来一定的性能影响。原创 2025-01-17 23:03:13 · 222 阅读 · 0 评论 -
mysql学习笔记-索引的创建与设计原则
在记录行数一定的情况下,列的基数越大,该列中的值越分散;列的基数越小,该列中的值越集中。②数据类型越小,索引占用的存储空间就越少,在一个数据页内就可以放下更多的记录,从而减少磁盘I/0带来的性能损耗,也就意味着可以把更多的数据页缓存在内存中,从而加快读写效率。连接表的数量尽量不要超过3张、对WHERE条件创建索引、对用于连接的字段创建索引并且该字段在多张表中的类型必须一致。2.1、字段的数值有唯一性的限制(如果某个字段是唯一性的,就可以直接创建唯一性索引,或者主键索引。注意和主键索引区分。原创 2025-01-17 22:57:07 · 151 阅读 · 0 评论 -
mysql学习笔记-InnoDB数据存储结构
FIL_PAGE_PREV(4字节)和FIL_PAGE_NEXT(4字节):页与页之间形成双向链表。FIL_PAGE_TYPE(2字节):页面类型,索引页、溢出页、系统页、Undo日志页等信息。FIL_PAGE_SPACE_OR_CHKSUM(4字节):校验数据完整性。FIL_PAGE_LSN(8字节):页面被最后修改对应的日志序列。FIL_PAGE_OFFSET(4字节):数据页唯一编号。1、File Header(文件头部)(38字节)6、Trailer(文件尾部)(8字节)记录主键最大值、最小值。原创 2025-01-12 23:14:25 · 254 阅读 · 0 评论 -
mysql学习笔记-存储引擎、索引数据结构
InnoDB(具备外键支持功能的事务存储引擎)、MyISAM (主要的非事务处理存储引擎)、 Archive(用于数据存档) 、Blackhole(丢弃写操作,读操作会返回空内容)、CSV(存储文件格式为CSV)、Memory(置于内存的表)、Federated(访问远程表)、Merge(管理多个MyISAM表构成的表集合)、 NDB(MySQL集群专用存储引擎)缺点:不支持事务、行级锁、外键、安全性不高(奔溃后无法完全恢复)应用场景:只读业务或以读为主的业务,访问速度快。1、mysql默认的存储引擎。原创 2025-01-06 23:01:34 · 138 阅读 · 0 评论 -
MySql学习笔记(1)
进制转换函数比较少用:BIN(10),HEX(10),OCT(10),CONV(10,10,8)、字符串函数。可以查询出Name='king'、='KING'的数据,Oracle是区分大小写的,只能查出name=‘King’的。集合A、集合B 组合的所有可能,组合的个数是两个集合个数的乘积。count(*)计算指定字段在查询结果的个数、方差、标准差、中位数 用得很少。2、分页方式不一样,mysql使用limit分页,oracle 用rownum加子查询进行分页。左边的表全部数据,右边展示满足条件的数据。原创 2024-12-31 11:09:18 · 294 阅读 · 0 评论