
数据库
文章平均质量分 77
xxx_520s
这个作者很懒,什么都没留下…
展开
-
扫库任务存在的问题
现在有一个扫库的定时任务,匹配条件是A表的sync字段为0且relId不为空,一次性扫描200条记录,然后按照主键id生序排列,会利用这批记录的relId字段去匹配B表的dataOriginId,因为dataOriginId的字段可能为空,所以这部分记录会失败,下次再扫描的时候这部分记录还是存在。原创 2024-08-22 09:23:11 · 239 阅读 · 0 评论 -
初始化接口VS增量同步实现全量同步VS全量同步VS导数完成数据初始化需求
作为数据中台,下游对接的系统一张新表,需要用到全量的数据,大概有15w左右,现在的状态是我已经写好了增量同步的需求,但是初始化需求因为刚开始没有沟通清楚导致现在临时加东西。原创 2024-08-20 17:21:15 · 488 阅读 · 0 评论 -
mysql批量更新唯一键的失败行为和解决方案
在这种情况下,由于您要对具有唯一索引的namename = ACname = BACB然后根据返回的结果来决定是否进行更新。需要注意的是,在实际操作中,一定要先在测试环境中进行充分的测试,以确保更新操作的正确性和数据的安全性。对于(一),可以将发生冲突的记录收集起来作为响应,这样以方便调用方处理,同时打印日志用于分析和处理冲突。原创 2024-08-15 23:42:36 · 927 阅读 · 0 评论 -
关于主键设置为bigint unsigned,在java中用什么承接呢?
在 MySQL 数据库中,可表示的范围是 0 到 18,446,744,073,709,551,615。在 Java 中,long类型的取值范围是到,不能完全覆盖的范围。原创 2024-08-15 12:38:50 · 599 阅读 · 0 评论 -
spring同一个接口如何分页实现主表或主+联表group by查询
这样,我们就成功地实现了一个能够兼容旧功能并支持新功能的查询接口。通过在请求体中新增一个子表的查询字段来扩展逻辑,确保最大限度的代码复用和功能扩展。原创 2024-08-10 15:01:12 · 394 阅读 · 0 评论 -
关于数据库连接池超时时间设置的合理值讨论
快速失败短超时时间(如 100ms 或更短)能确保在数据库连接耗尽的情况下,线程会快速失败,释放资源,保持系统的敏捷性。动态调整对于每个系统,最佳的超时时间可能不同。在实际环境中,可以从100ms开始,逐步观察系统行为和性能,逐渐调整至最适设置。负载监控与调优不断监控系统负载和数据库连接池的使用情况,并相应优化连接池的配置参数(如最大连接数、释放策略等)。整体优化除了调整超时时间,还应评估数据库查询效率、索引优化、应用程序逻辑等因素,以降低数据库压力和提高应用响应能力。原创 2024-08-02 21:29:29 · 1197 阅读 · 0 评论 -
关于如何优化insert into (select ....) values (?, ?, ?)操作
执行这个语句会,我们都知道一旦上了给表上了排他锁,就相当于升级为表锁,其他所有的对这个表的crud操作都要等待当前的锁解除武装之后才能进行,所以这条sql操作的性能是很差的。原创 2022-10-05 14:52:09 · 1594 阅读 · 0 评论 -
2022/3/16字节后端开发实习一面凉经
1 数据库有100条记录,如何使用like模糊查询,2 讲讲你认为最好的一个项目3计算机网络计算机网络:2 jwt的验证流程3 jwt如何解决的session的跨域问题4 jwt如何解决单点登录问题5 jwt如何防止不同设备下的重复登陆问题6 拥塞控制的流程以及区别快重传和选择重传了解拥塞控制原理请查看此文章,讲解的非常详细完整:拥塞控制详解快重传和选择重传:选择重传考察的实际上是滑动窗口协议(停等,GBN和选择重传)7。原创 2022-10-05 10:30:14 · 148 阅读 · 0 评论 -
mysql中模拟实现脏读,不可重复读和幻读及其解决方案
1 脏读1.1 说明在两个事务中,一个事务读到了另一个事务未提交的数据(即事务A读取到事务B修改数据,当事务B未提交数据到数据库或出错时,事务A再进行读取发现数据已修改。1.2 mysql命令行模拟脏读1.2.1 在 “读未提交” 的隔离级别下测试创建数据库test以及表roomsSET NAMES utf8mb4;SET FOREIGN_KEY_CHECKS = 0;-- ------------------------------ Table structure for roo原创 2022-01-11 02:05:24 · 2406 阅读 · 0 评论 -
mysql中autocommit,start transaction和begin/commit的异同
相同点:这三个关键字都与mysql的事务相关,直接操纵事务的语句,不同点:(1)他们的作用范围不一样。AUTOCOMMIT是数据库innodb引擎级别的属性,对于start transaction和begin/end而言是全局的,一旦使用SET AUTOCOMMIT=0 禁止自动提交,则在这个数据库内部的所有事务都不会自动提交,除非你手动的为每一个事务执行了commit或者rollback语句;而start transaction和begin/commit只能控制某一个事务。(2)优先级不同..原创 2022-01-11 10:43:08 · 3123 阅读 · 0 评论 -
max等聚合函数和group by搭配使用的注意事项
1 group by的特点1.1 定义group_by的意思是根据by对数据按照哪个字段进行分组,或者是哪几个字段进行分组。如果不在group by 后的分组中使用聚合函数,一般只会返回各个分组中的第一条数据,而且各分组内的数据是默认按照asc升序排列。如果group by 和having后面接了order by,则这个order by 不会在得到分组的结果前,对分组内的数据进行排序,而是在组与组间的数据进行排序,有人会问什么需要在group by得出最终结果前,对分组做一次排序呢,这是由上一个讲原创 2022-01-10 17:17:12 · 9339 阅读 · 6 评论 -
分库分表以及分区
为什么要对数据库进行分库分表?答: 当单表的数据量达到1000W或100G以后,优化索引、添加从库等可能对数据库性能提升效果不明显,此时就要考虑对其进行切分了。切分的目的就在于减少数据库的负担,缩短查询的时间。数据库的大表怎么优化1,限定数据范围,比如:用户在查询历史信息的时候,可以控制在一个月的时间范围内2,数据库的主从复制,读写分离也称读写分离:经典的数据库拆分方案,主库负责写,从库负责读;3,分库分表 - 对数据库进行水平拆分和垂直拆分3.1 垂直拆分:垂直划分数据库是根据业务进行划原创 2021-12-30 21:09:14 · 1065 阅读 · 0 评论 -
bin log,redo log以及undo log详解
1 bin log1.1 定义bin log应该说是Mysql里最核心的日志,是MySQL数据库级别的文件,记录对MySQL数据库各种引擎下执行修改的所有操作(包括DDL和DML语句),不会记录select和show语句,主要用于恢复数据库和同步数据库(主从同步)。1.2 bin log的三种日志格式binlog 有三种记录格式,分别是ROW、STATEMENT、MIXED。1、ROW: 基于变更的数据行进行记录,如果一个update语句修改一百行数据,那么这种模式下就会记录100行对应的记录日志原创 2021-12-30 18:09:44 · 4298 阅读 · 2 评论 -
bin log 和 redo log的区别
1 bin logbin log是MySQL数据库级别的文件,记录对MySQL数据库各种引擎下执行修改的所有操作,不会记录select和show语句,主要用于恢复数据库和同步数据库。2 redo logredo log是innodb引擎级别,用来记录innodb存储引擎的事务日志,不管事务是否提交都会记录下来,用于数据恢复。当数据库发生故障,innoDB存储引擎会使用redo log恢复到发生故障前的时刻,以此来保证数据的完整性。将参数innodb_flush_log_at_tx_commit设置为1原创 2021-12-11 18:55:49 · 663 阅读 · 0 评论 -
数据库中的视图和临时表对比
1 视图1.1 什么是视图?视图是一种虚拟的表,具有和物理表相同的功能。可以对视图进行增,改,查,操作,视图通常是有一个表或者多个表的行或列的子集。对视图的修改不影响基本表。相比多表查询,它使得我们获取数据更容易和快捷。1.2 使用视图的优点:视图隐藏了底层的表结构,简化了数据访问操作,提升了访问效率,因为视图是用hash表存储的,相当于直接查询,大大减少了I/O次数,所以比join 拼接各种表快因为隐藏了底层的表结构,所以大大加强了安全性,用户只能看到视图提供的数据,使用视图,方便了权限管理原创 2021-12-11 16:12:23 · 1254 阅读 · 0 评论 -
不执行事务产生的问题以及事务隔离级别
1,什么是事务事务是DBMS的基本单位,是一些列操作的集合,是并发控制的基本单位2,事务的四大特性事务具有四个特征:原子性( Atomicity )、一致性( Consistency )、隔离性( Isolation )和持续性( Durability )。这四个特性简称为 ACID 特性。事务中的所有操作要么全部执行,要么都不执行; 如果事务没有原子性的保证,那么在发生系统 故障的情况下,数据库就有可能处于不一致状态。 因而,事务的原子性与一致性是密切相关的。如果一个数据库声称支持事务的操作,那原创 2021-11-15 16:45:24 · 255 阅读 · 0 评论 -
面试必备-行锁、表锁 - 乐观锁、悲观锁的区别和联系(史上最全)
锁悲观锁总是假设最坏的情况,每次去拿数据的时候都认为别人会修改,所以每次在拿数据的时候都会上锁,这样别人想拿这个数据就会阻塞直到它拿到锁(共享资源每次只给一个线程使用,其它线程阻塞,用完后再把资源转让给其它线程)。传统的关系型数据库里边就用到了很多这种锁机制,比如行锁,表锁等,读锁,写锁等,都是在做操作之前先上锁。Java中synchronized和ReentrantLock等独占锁就是悲观锁思想的实现。or总是认为多用户访问数据库时会产生并发冲突,因此需要消除所有可能会产生冲突的操作共享锁(Sh原创 2021-11-15 16:07:04 · 3480 阅读 · 0 评论 -
内连接中等值连接和自连接的区别
1,内连接与外连接的定义1,内连接(典型的联接运算,使用像 = 或 <> 之类的比较运算符)。包括相等联接和自然联接。内联接使用比较运算符根据每个表共有的列的值匹配两个表中的行。例如,检索 students和courses表中学生标识号相同的所有行。2,LEFT JOIN或LEFT OUTER JOIN【两者等价】左向外联接的结果集包括 LEFT OUTER子句中指定的左表的所有行,而不仅仅是联接列所匹配的行。如果左表的某行在右表中没有匹配行,则在相关联的结果集行中右表的所有选择列原创 2021-11-14 17:23:32 · 555 阅读 · 0 评论 -
一对多关系中,左外连接的a left join b和b left join a的区别
1,名词解释[最好能背来,对与理解以及各种连接类型的对比非常有帮助]此阴影部分转载自此博主,点击高亮部分即可跳转这个链接用 1 作为网址变量1、内联接(典型的联接运算,使用像 = 或 <> 之类的比较运算符)。包括相等联接和自然联接。内联接使用比较运算符根据每个表共有的列的值匹配两个表中的行。例如,检索 students和courses表中学生标识号相同的所有行。2、 外联接。外联接可以是左向外联接、右向外联接或完整外部联接。 在 FROM子句中指定外联接时,可以由下列几原创 2021-11-14 14:57:20 · 3483 阅读 · 0 评论