自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(13)
  • 资源 (2)
  • 收藏
  • 关注

原创 20241124

最近发现部分业务代码时不时报出NPE(NULL Pointer Exception)告警,排查发现都是存入新数据后立马进行查询操作,尽管数据存储成功,但查询结果却为null,导致针对查询结果的后续操作出现npe。以上方案二是一种比较推荐的方式,但它也可能出现每次请求都走主库。因此需要对具体场景进行具体分析,尤其是高并发场景,进而选择正确的方案。这样虽然避免了主从延迟,但相当于废弃了从库的使用,在高并发场景下是不推荐这种做法的。可以先查从库,如果没有查询到结果,则再去查主库。

2024-11-24 20:24:55 206

原创 用单调栈接雨水

如果 height[i]>height[top],则得到一个可以接雨水的区域,该区域的宽度是 i−left−1,高度是 min(height[left],height[i])−height[top],根据宽度和高度即可计算得到该区域能接的雨水量。单调栈告诉你:栈顶元素x出栈后,此时的栈顶元素y是x元素左边第一个比它大的元素,此时要进栈的元素z是x元素右边第一个比它大的元素。遍历结束之后即可得到能接的雨水总量。:如果栈非空,且当前数组元素大于等于栈顶元素,则将栈顶元素出栈,直到当前数组元素满足入栈条件为止。

2024-11-05 00:15:27 274

原创 MyBatis参数传递原理

mybatis底层通过Map集合来封装参数开发人员可通过@Param(“key”),来指定各个参数的键值。

2023-06-25 11:14:01 194

原创 MySQL进阶:MySQL管理

mysqladmin是一个执行管理操作的客户端程序。可以用它来检查服务器的配置和当前状态、创建并删除数据库等。mysqldump用来备份数据库或在不同数据库之间进行数据迁移。备份内容包含创建表及插入表的SQL语句。客户端查找工具,很快查找存在哪些数据库、数据库中的表、表中的列或者索引。数据导入工具,用来导入mysqldump加-T参数后导出的文本文件。-e 登陆后执行的SQL语句,执行完退出。-h 指定服务器ip地址或域名。二进制日志管理工具。

2023-06-19 14:52:45 104

原创 MySQL进阶:InnoDB引擎

对应ibd文件,用于存储记录、索引等数据。分为数据段(leaf node segment)、索引段(non-leaf node segment)、回滚段(rollback segment),InnoDB是索引组织表,数据段就是B+树的叶子节点,索引段即为B+树的非叶子节点。段用来管理多个区(Extent)。表空间的单元结构,每个区大小为1M。默认情况下,InnoDB引擎页大小为16K,即一个区中共有64个连续的页。是InnoDB引擎磁盘管理的最小单元,每个页的大小默认为16KB。

2023-06-19 14:52:12 132

原创 MySQL进阶:锁

全局锁是对整个数据库实例上锁,被上锁的数据库实例中所有表都成为只读状态。全局锁常用在数据库备份场景下,让所有表处于只读状态进行备份,从而维护数据一致性。存在问题:是一个比较重的操作读写分离?InnoDB引擎中,我们可以在备份时加上参数–single-transaction参数来完成不加锁的一致性数据备份。

2023-06-18 00:30:12 93

原创 MySQL进阶:视图&存储过程&触发器

用户自己定义的变量,只在当前连接有效。

2023-06-17 17:22:08 97

原创 MySQL进阶:SQL优化

插入多条数据,可以采用批量操作(不建议超过1000条, 500到1000是比较合适的)。超过的话,分成多条批量插入语句。手动提交事物, MySQL默认自动提交事物,会频繁开启事物并提交。主键顺序插入。顺序插入的性能高于乱序插入。(主键优化)大批量插入数据,不建议使用insert了,可以采用MySQL提供的load指令。load: 本地文件---->数据库load指令插入100万条数据16s,而用insert十多分钟。

2023-06-17 17:21:01 111

原创 MySQL进阶:索引

帮助数据库快速查询数据的。[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-JPgKp1Wt-1686921684599)(image-1.png)]

2023-06-16 21:22:01 59

原创 MySQL进阶:存储引擎

存储引擎决定存储数据、建立索引、查询/更新数据的机制,它是基于表的,而不是基于库,因此又称为表类型。create table([ . . . ]) ENGINE = INNODB [ 默认采用 INNODB ] show engines;查询当前数据库支持哪些存储引擎EngineSupportCommentXASavepointsYESNONONOCSVYESNONONOMRG_MYISAMYESNONONOBLACKHOLEYESNONONOMyISAM。

2023-06-16 21:20:43 74

原创 C++学习:线程安全的对象

竞态条件:C++的对象生命周期由程序员管理,当一个对象被多个线程同时看到时,对象被谁销毁,何时销毁不清楚。解决方法:shared_ptr.线程安全的类:1.多个线程同时访问时,其表现出正确的行为2.无论操作系统如何调度这些线程,无论这些线程执行顺序如何交织。3.调用端代码无须额外的同步和其他协调动作。C++标准库里的大多数类都不是线程安全的,包括string、vector、map等,多线程使用时要加锁。mutable修饰的成员变量,可以被常成员函数修改。

2023-06-15 15:05:36 325

原创 C++学习:对象优化

构造函数、析构函数、拷贝构造函数、赋值运算符重载函数。

2023-06-15 13:52:21 46

原创 C++学习: 绑定器

find_if() 需要一元函数对象,而greater/less都是二元函数对象,因此需要将二元函数对象中的一个参数通过绑定器bind1st/bind2nd绑定到一个固定值。:C++11从boost引进的机制。:二元函数对象 ====》一元函数对象:绑定器底层是通过函数对象实现的。

2023-06-15 13:49:49 213

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除