数据库
文章平均质量分 61
CleanUp Hitter
学以致用
展开
-
MySQL日志探索——redo log和bin log的刷盘时机详解
在双1的基础上,如果我们把sync_binlog改了呢?此时事务提交只需要0.00sec,可以判定提交的瞬间未刷盘,但是提交成功了。因为sync_binlog=N,在后续的1~N-1的事务,commit都是很快,第N个事务commit所消耗的时间是1s左右。也就是在第N次时候,进行了刷盘。这时候有人疑惑了,那么我的组提交参数有啥用?原创 2024-03-30 20:28:28 · 1193 阅读 · 1 评论 -
Redis的持久化——深入探究底层原理
RDB有两种数据同步方式,一种是save,一种是bgsave,save同步的话,会直接阻塞我们的主线程。这时候也会有一个问题就是如果老倒霉蛋出现了所有的数据都更新了,那么所有的数据都被复制了一份,导致Redis内存翻了一倍。AOF会将命令写入到aof的缓冲区,和mysql的日志写入非常像,我们写入到缓存然后调用系统函数写入内核缓冲区,然后由内核发起操作调用IO写入到硬盘。原创 2024-03-12 11:20:50 · 555 阅读 · 0 评论 -
MySQL知识点归纳总结(二)
两个事务都对同一个范围加间隙锁,然后尝试插入导致死锁。binlog 文件是记录了所有数据库表结构变更和表数据修改的日志,不会记录查询类的操作,比如 SELECT 和 SHOW 操作。binlog 是追加写,写满一个文件,就创建一个新的文件继续写,不会覆盖以前的日志,保存的是全量的日志。redo log 是循环写,日志空间大小是固定,全部写满就从头开始,保存未被刷入磁盘的脏页日志。binlog 用于备份恢复、主从复制;redo log 用于掉电等故障恢复。原创 2024-03-02 09:48:11 · 994 阅读 · 0 评论 -
MySQL知识点归纳总结(一)
select的数据列只用从索引中就能够取得,不需要回表进行二次查询,换句话说查询列要被所使用的索 引覆盖。对于innodb表的二级索引,如果索引能覆盖到查询的列,那么就可以避免对主键索引的二次查 询。不是所有类型的索引都可以成为覆盖索引。覆盖索引要存储索引列的值,而哈希索引、全文索引不存储 索引列的值,所以MySQL只能使用b+树索引做覆盖索引。对于使用了覆盖索引的查询,在查询前面使用explain,输出的extra列会显示为 using index。原创 2024-02-27 20:00:47 · 1522 阅读 · 1 评论 -
Mysql中的正经行锁、间隙锁和临键锁
间隙锁(Gap Lock):间隙锁是指在索引的范围之间的间隙上进行的锁定操作。幻读是指一个事务在前后两次读取同一范围数据时,发现有新的满足条件的数据出现。行锁一般是在修改数据时使用的。临键锁可以锁定某一行的同时,也会锁定这个行的前一个间隙,确保其他事务不能在同一个间隙插入新记录。根据具体的业务需求和数据库设计,开发人员可以选择使用适合的锁定方式来保证数据的正确性和并发性。行锁、间隙锁和临键锁是数据库中的三种不同类型的锁,三者都属于行锁,第一个一般叫他正经的行锁(《Mysql是怎样运行的》一书中的说法)。原创 2023-12-04 22:49:08 · 223 阅读 · 0 评论 -
一键使用Mybatis-X生成逆向工程
Mybatis-X 是一个 IntelliJ IDEA 的插件,可以帮助快速生成 MyBatis 的逆向工程。原创 2023-11-10 13:36:43 · 750 阅读 · 0 评论 -
如何进行Mysql查询语句优化?
优化查询语句的写法,例如合理使用 WHERE 子句、使用 LIMIT 限制结果集大小、避免使用不必要的子查询等。分析和优化慢查询:通过使用 EXPLAIN 命令,分析查询语句的执行计划,查看索引使用情况和性能瓶颈。使用缓存:利用 MySQL 自带的查询缓存功能,缓存频繁查询的结果。避免频繁的表连接和子查询:合理设计数据库结构,尽量减少表连接的次数和子查询的嵌套层次。优化表结构:根据查询的需求,合理设计表的结构,选择合适的数据类型和字段长度,避免使用过多的冗余字段和重复数据。原创 2023-10-22 22:17:57 · 28 阅读 · 0 评论 -
docker部署单点elasticsearch时出现exit(1)的情况怎么解决
这是由于Node文件残留,以前部署的es留下的导致出现了错误。把这个nodes直接删了,重启容器即可。我们定位到对应文件夹给删了。原创 2023-10-19 16:22:23 · 409 阅读 · 0 评论 -
InnoDB引擎——页的组成(《Mysql是怎样运行的》)
Compact格式的数据页采用了紧凑的存储方式,可以有效地减少存储空间的占用,并提高数据的读取和写入性能。同时,空闲空间的管理也可以减少页的碎片化,提高数据的存储效率。在InnoDB引擎中,Compact是一种数据页的组织方式,它是一种紧凑的页格式,用于存储表的数据。需要注意的是,InnoDB引擎还有其他类型的页,如索引页、undo页和系统页等,它们在结构上可能有所不同,但都是由页头、页目录、记录区和空闲空间组成。页头(Page Header):页头存储了一些元数据信息,如页的类型、页的大小、页的编号等。原创 2023-10-10 15:28:00 · 25 阅读 · 0 评论