mysql
文章平均质量分 80
mysql学习与运维过程中的一些笔记,心得
雨下的竹子
这个作者很懒,什么都没留下…
展开
-
JDBC查询大数据时怎么防止内存溢出-流式查询
在使用 JDBC 查询大数据时,由于 JDBC 默认将整个结果集加载到内存中,当查询结果集过大时,很容易导致 JVM 内存溢出的问题。解决办法通常是使用分页查询,但是分页查询越往后要遍历的行数越多,效率越低。除非能够添加索引条件,但这又提高了业务逻辑的复杂度。JDBC的流式查询就是在使用ResultSet对象获取查询结果集的时候,不是把结果集一次性全部加载到内存中,而是分批次读取数据。在jdbc客户端和mysql服务端建立tcp连接后,mysql以包的形式返回数据。原创 2024-04-26 12:33:23 · 1590 阅读 · 3 评论 -
MySQL分布式事务xa的介绍与使用
xa指的是分布式事务,传统的事务针对的是单机MySQL。在如今大数据时代下,往往需要多台MySQL组成一个集群存储数据。这种情况下,针对所有MySQL节点操作就无法保证所有MySQL的事务一致性,即只要一台MySQL上执行的事务回滚了,那么其他所有MySQL也要回滚。原创 2024-04-24 10:55:12 · 1201 阅读 · 2 评论 -
MySQL存储过程的基本用法
注:每次自己进行小测试时,需要往mysql中插入几十上百万的模拟数据,老是忘了存储过程、while循环怎么写,于是借助博客记录一下。虽然可以使用jdbc或者其他工具来批量插入,但架不住存储过程最直接、方便。”作为语句的分隔符,存储过程包含多个sql语句,所以会被解析为多个sql依次执行。因此必须改变分隔符,将创建存储过程的多个sql视作一个整体。DELIMITER:用于改变语句的分隔符。默认情况下,mysql会以分号“OUT:返回结果,后跟参数名、类型。IN:入参,后跟参数名、类型。原创 2024-04-23 15:21:00 · 463 阅读 · 1 评论 -
MySQL多版本并发控制mvcc原理浅析
mvcc(Multi Version Concurrency Control),多版本并发控制,是一种数据库的并发控制机制。它用于管理事务并发执行时对数据的访问和修改,保证在多个事务同时对数据库进行读写操作,不会出现数据不一致或丢失的情况。原创 2024-04-19 09:36:05 · 1306 阅读 · 2 评论 -
MySQL函数now和sysdate使用时的注意事项
mysql提供的函数now和sysdate都是用来获取当前的日期和时间。不同的是,now会在sql开始执行时就固定下来,而sysdate会在执行过程中计算。简单说,now是静态的,sysdate是动态的。原创 2024-04-18 15:26:12 · 320 阅读 · 0 评论 -
MySQL关于binlog简介
binlog是mysql server层维护的一种二进制日志,其记录了对mysql的更新操作信息,并以事件的形式保存在磁盘中mysqlbinlog是mysql提供的专门处理binlog文件的工具,利用它可以查看binlog,通过指定条件进行恢复等操作。原创 2024-04-16 16:15:10 · 894 阅读 · 0 评论 -
MySQL关于事务acid特性的简单介绍
原子性是指一个事务是不可分割的最小单位,其中的操作要么都成功,要么都失败;如果事务中的一个sql执行失败,则已执行成功的sql必须回滚,数据库退回到事务执行前的状态持久性是指事务一旦提交,它对数据库的改变就应该是永久的。接下来的操作或故障不会导致数据丢失或其他异常。隔离性是指事务内部的操作与其他事务是隔离的,并发执行的各个事务之间不能互相干扰。严格的隔离性,对应了事务隔离级别中的,但实际应用中出于性能考虑基本不会使用该级别写对写的影响:锁写对读的影响:多版本并发控制(mvcc)原创 2024-04-15 16:21:01 · 1011 阅读 · 1 评论 -
MySQL索引与b+树浅析
索引是为了加速对表中的数据检索而创建的一种数据结构(比如二叉搜索树)。索引一般以文件的形式存储在磁盘上,所以使用时需要进行磁盘IO。原创 2024-04-14 12:12:13 · 861 阅读 · 3 评论 -
mydumper与myloader使用介绍
mydumper与myloader是github上的一个开源工具,用于mysql数据库的备份与恢复。相比于mysql自带的备份与恢复工具,mydumper和myloader的优势在于使用的是多线程进行备份与恢复,所以它的效率更高。mydumper:对指定的库表进行备份myloader:利用mydumper备份的文件进行恢复。原创 2024-04-13 16:37:58 · 505 阅读 · 1 评论 -
MySQL可重复读隔离级别下开启事务的一个注意事项
在日常我们操作mysql时,mysql默认是自动提交的。当我们需要开启一个事务时,可以使用或begin命令,再使用commit或rollback提交或回滚事务。但事务的使用也有一些注意事项,不注意的话,可能会带来意料之外的结果。今天,我要分享的就是在(简称rr)隔离级别下,mysql的快照生成时机的问题。原创 2024-04-12 09:36:39 · 690 阅读 · 2 评论 -
MySQL主从一致性校验工具pt-table-checksum简单介绍
pt-table-checksum是percona toolkit工具中的一个命令,用于在线比较Mysql主从数据一致性。写入一个表中,通过主从复制,在从库上也执行同样的操作,再对比主从库上的校验和信息,判断主从是否一致。将一张大表分为多个块,默认第一个块是1000条数据,后面的块大小会根据机器性能浮动。使用replica into而不是insert into避免了主键冲突问题。–no-check-binlog-format 不校验binlog格式。针对每个块计算校验和,将结果通过。原创 2024-04-09 16:49:11 · 676 阅读 · 1 评论 -
MySQL主从同步及gtid简介
on或off,在从库宕机且relaylog损坏情况下,主库日志已经传到了从库,从库还没来得及应用,开启该配置项,从库会自动放弃未执行的relaylog,并生成一个新的relaylog,将从库的io线程的position重新指向新的relaylog,并将sql线程的position退回到与io线程一致,重新开始同步,这样事务不会丢失。Master_Server_Id、Master_UUID、Master_Info_File:主库的server_id,uuid,从库保存主库相关内容的目录。原创 2024-04-11 09:44:26 · 882 阅读 · 1 评论