自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(42)
  • 资源 (6)
  • 收藏
  • 关注

原创 求解:组队(注意时间超限问题)

输入格式 第一行 第二行 ( ) 输出格式 最大的m 【样例1 输入】 【样例1 输出】 【样例2 输入】 【样例2 输出】 【样例3 输入】 6 1 10 17 12 15 2 3 10 1337 1337 1337 1337 1337 1337 1337 1337 1337 1337 10 6 1 1000 10000 10 100 1000000000 【样例3 输出】 样例解释 第一组样例:方案选 [12,17,15] 第二组样例:方案全选 第三组样例:方案只有一个数字 数据范围。

2023-12-13 20:03:53 57 1

原创 求解:短信(注意时间超限!)

短信 题目描述 小Z是个喜欢小朋友的同学,路上遇到任何小朋友,小Z都会伸出双臂,一脸甜蜜地对小朋友说:“小可 爱,抱抱~”不过,大多数情况下,小朋友都是不会理小Z的,这点让小Z非常郁闷。可是,就在小Z去云南旅游的路途中,碰到了一个很乖的小朋友。现在小Z收到了 N(1

2023-12-12 18:28:24 63

原创 常用GC参数

串行回收器相关参数-XX:+UseSerialGC: 在新声代和老年代使用串行回收器-XX:SurvivorRatio: 设置eden/survivor-from 的比例,默认值8-XX:PretenureSizeThreshold: 设置大对象进入老年代的阈值,单位字节。-XX:MaxTenuringThreshold: 对象进入老年代的最大年龄,默认15XX:TargetSurvi...

2019-10-29 11:29:28 496 1

原创 JVM参数汇总

一、java启动参数共分为三类:其一是标准参数(-),所有的JVM实现都必须实现这些参数的功能,而且向后兼容;其二是非标准参数(-X),默认jvm实现这些参数的功能,但是并不保证所有jvm实现都满足,且不保证向后兼容;其三是非Stable参数(-XX),此类参数各个jvm实现会有所不同,这些都是不稳定的并且不推荐在生产环境中使用。将来可能会随时取消,需要慎重使用;上都被实现),而且如果在新...

2019-10-26 09:43:41 255

原创 深入JVM 内存模型与内存分配

一、JVM内存区域划分大多数 JVM 将内存区域划分为Method Area(Non-Heap),Heap,Program Counter Register,Java Method Stack,Native Method Stack和Direct Memomry(注意 Directory Memory 并不属于 JVM 管理的内存区域)。前三者一般译为:方法区、堆、程序计数器。但不...

2019-10-25 16:07:38 235

原创 Java 8 中处理日期和时间示例

在Java 8以前,日期和时间处理一直被广大java程序员抱怨太难用,首先是java.util和java.sql中,都包含Date类,如果要进行时间格式化,还需要java.text.DateFormat类处理。同时java.util.Date中既包含了日期,又包含了时间,所以java8新的日期和时间库,很好的解决了以前日期和时间类的很多弊端。并且也借鉴了第三方日期库joda很多的优点。在jav...

2019-09-30 16:45:07 142

转载 mysql实战45讲--- 45 MySQL自增id

45 MySQL自增id表定义自增id说到自增id,前面提到mysql的自增id不连续,当表定义的自增值达到上限后的逻辑是:再申请下一个id时,得到的值保持不变create table t(id int unsigned auto_increment primary key) auto_increment=4294967295;insert into t values(null...

2019-07-17 14:13:19 391

转载 mysql实战45讲--- 44 答疑(三)--join的写法/Simple nested loop join的性能问题/Distinct和group by的性能/备库自增主键问题

44答疑(三)Join的写法35节介绍了join执行顺序,加了straight_join,两个问题:--1如果用left join,左边的表一定是驱动表吗--2如果两个表的join包含多个条件的等值匹配,是都要写到on里面呢,还是只把一个写到on,把其他的条件写到where部分?create table a(f1 int, f2 int, index(f1))engin...

2019-07-17 14:13:09 423

转载 mysql实战45讲--- 43 使用分区表

43使用分区表有些时候,一些公司的规范不允许使用分区表,分区表有什么问题?分区表是什么?先创建一个分区表CREATE TABLE `t` ( `ftime` datetime NOT NULL, `c` int(11) DEFAULT NULL, KEY (`ftime`)) ENGINE=InnoDB DEFAULT CHARSET=latin1PARTI...

2019-07-17 14:12:57 200

转载 mysql实战45讲--- 42 grant与flush privileges

42 grant与flush privileges在mysql里,grant是给用户赋权的,一些文档中经常提到在grant执行后,马上执行一个flush privileges,才能使赋权语句生效,那么,grant之后真的需要执行flush privileges吗?如果没有执行这个flush操作,赋权语句能否生效?(root@localhost:mysql.sock) [(none)]&g...

2019-07-17 14:12:43 521

转载 mysql实战45讲--- 41 快速的复制一张表

41快速的复制一张表create database db1;use db1;create table t(id int primary key, a int, b int, index(a))engine=innodb;delimiter ;; create procedure idata() begin declare i int; set i=1;...

2019-07-11 11:50:52 239

转载 mysql实战45讲--- 40 insert语句的锁

40 insert语句的锁上一篇文章中对mysql自增主键锁做了优化,尽量在申请到自增id后,就释放自增锁。因此,insert语句是一个很轻量的操作,不过,这个结论对于”普通的insert”才生效,其他特殊的insert语句,在执行过程中需要给其他资源加锁,或者在无法申请到自增id以后就立马释放自增锁。Insert。。。Select语句CREATE TABLE `t` ( ...

2019-07-11 11:50:42 306

转载 mysql实战45讲--- 39 自增主键为什么不连续

39自增主键为什么不连续Mysql的innodb的自增主键,由于自增主键可以让主键索引尽量得保持递增顺序插入,避免了页分裂,因此索引更紧凑。在设计的时候,自增主键是不能保证连续的。| t39 | CREATE TABLE `t39` ( `id` int(11) NOT NULL AUTO_INCREMENT, `c` int(11) DEFAULT NULL, ...

2019-07-11 11:50:35 251

转载 mysql实战45讲--- 38 是否要使用memory引擎的表

38是否要使用memory引擎的表内存表的数据组织结构create table t1(id int primary key, c int) engine=Memory;create table t2(id int primary key, c int) engine=innodb;insert into t1 values(1,1),(2,2),(3,3),(4,4),(5,5),...

2019-07-11 11:50:26 162

转载 mysql实战45讲--- 37 什么时候使用内部临时表

37什么时候使用内部临时表前面介绍了sort buffer,内存临时表和join buffer,这3个数据结构都是用来存放语句执行过程中的中间数据,以辅助sql语句的执行的,在排序的时候用sort buffer,在使用join语句的时候使用了join_buffer。在mysql里,什么时候使用内部临时表呢?Union执行流程create table t37(id int pri...

2019-07-11 11:50:17 234

转载 mysql实战45讲--- 36 为什么临时表可以重名

36为什么临时表可以重名在上一篇的join优化中,用到了临时表,create temporary table temp_t like t1;alter table temp_t add index(b);insert into temp_t select * from t2 where b>=1 and b<=2000;select * from t1 join te...

2019-07-11 11:50:09 296

转载 mysql实战45讲--- 35 怎么优化join

35怎么优化join上一篇介绍了join的两种算法:nlj和bnlcreate table t1(id int primary key, a int, b int, index(a));create table t2 like t1;drop procedure idata;delimiter ;;create procedure idata()begin decla...

2019-07-11 11:49:57 243

转载 mysql实战45讲--- 34 到底可不可以使用join?

34到底可不可以使用join?在实际生产中,关于join语句使用的问题,一般会集中在以下两类:--1 dba不让使用join,使用join有什么问题呢--2如果有两个大小不同的表做join,应该用哪个表做驱动表呢?创建2个表作为测试CREATE TABLE `t34` ( `id` int(11) NOT NULL, `a` int(11) DEFAULT N...

2019-07-11 11:49:49 227

转载 mysql实战45讲--- 33 查询大量数据,是否会把内存撑爆

33查询大量数据,是否会把内存撑爆如果主机内存只有100g,现在要对一个200g的大表做全部扫描,会不会把数据库主机的内存用光了?全表扫描对server层的影响假设,现在要对一个200g的innodb表db1.t33执行全表扫描,当然,要把全部扫描的结果保存在客户端,会用类似这样的命令:mysql -h$host -P$port -u$user -p$pwd -e "select...

2019-07-11 11:49:39 2367

转载 mysql实战45讲--- 32 kill不掉的语句

32 kill不掉的语句在mysql中有两个kill命令:一个是kill query+线程id,表示终止这个线程正在执行的语句;一个是kill connection+线程id,缺省connection值,表示断开这个线程的连接,当然如果这个线程有语句正在执行,也是要先停止正在执行的语句。在大多数情况下,kill query/connection的命令是有效的。比如,执行一个查询的过程中,发...

2019-07-11 11:49:18 434

转载 mysql实战45讲--- 31 数据误删的恢复

31数据误删的恢复1使用delete语句误删数据行2使用drop table或者truncate table语句误删除数据表3使用drop database语句误删数据库4使用rm命令误删整个mysql实例误删行如果使用delete语句误删了数据行,可以使用flushback工具通过闪回把数据恢复出来Flushback恢复数据的原理,是修改binlog的内容,...

2019-07-10 21:05:14 173

转载 mysql实战45讲--- 30 答疑文章二,用动态的观点看加锁

答疑文章二,用动态的观点看加锁回顾加锁原则:原则1:加锁的基本单位是next-key lock,是一个前开后闭区间原则2:查找过程中访问到的对象才加锁优化1:索引上的等值查询,给唯一索引加锁的时候,next-key lock退化为行锁优化2:索引上的等值查询,向右遍历时且最后一个值不满足等值条件的时候,next-key lock退化为间隙锁一个bug:给唯一索引上的范围查询...

2019-07-10 21:05:06 140

转载 mysql实战45讲--- 29 如何判断一个数据库是不是出了问题

29如何判断一个数据库是不是出了问题在主备环境中,必不可少的是出现主从的切换,一种是主动切换,一种是被动切换,往往是因为主库出了问题,由HA系统发起的。怎么判断一个主库出现了问题了呢select 1判断实际上,select 1成功返回,只能说明这个库的进程还在,并不能说明主库没问题,下面一个场景set globalinnodb_thread_concurrency=3;...

2019-07-10 21:04:56 276

转载 mysql实战45讲--- 28 读写分离有哪里要注意的地方

28读写分离有哪里要注意的地方在一主多从的架构中,读写分离,以及怎么处理主备延时导致的读写分离的问题。读写分离的主要目标是分担主库压力,上图的结构是客户端主动做负载均衡,在这种模式下一般会把数据库的连接信息放在客户端的连接层,也就是由客户端来选择后端数据库进行查询。还有一种架构,在mysql和客户端之间加入一层中间件层proxy,客户端只连接proxy,由proxy根据请求类型...

2019-07-10 21:04:38 107

转载 mysql实战45讲--- 27 mysql主从出现错误

大多数的互联网应用场景都是读多写少,在发展过程中可能会出现读性能问题,在数据库层解决读性能问题:一主多从下面是多主从结构虚线箭头表示主备关系,A与A’互为主备,从库B,C,D指向主库A,一主多从的设置,一般用于读写分离,主库复制所有的写入和一部分读,其他的读有从库分担。在一主多从架构下,主库故障后的主备切换相比一主一从的切换,一主多从结构在切换完成后,A’会成为新的主...

2019-07-10 21:04:29 146

转载 mysql实战45讲--- 26 主备库并行复制策略

主备库并行复制策略如果备库执行日志的速度低于主库日志生成的速度,那么这个延迟就有可能更长,而且对于一个压力持续比较高的主库来说,备库很可能永远追不上主库下面介绍备库并行复制能力谈到主备的并行能力,就关注图中2个黑色的箭头,一个代表主库并行写入,另外一个代表备库并行sql_thread执行relay_log。并行度主库要高于备库。在主库上,影响并发的原因就是各种锁,由于innod...

2019-07-10 21:04:18 140

转载 mysql实战45讲--- 25 mysql怎么保证高可用

上一篇介绍了binlog的基本内容,在主备关系中,是每个备库接收主库的binlog并执行。正常情况下,只要主库执行更新生成的所有的binlog,都可以传到备库并被正确执行,备库就能跟主库一致的状态,之就是最终一致性,但是,mysql要提供高可用能力,只有最终一致性是不够的主备延时主备切换可能是一个主动运维动作,比如软件升级,主库所在机器按计划下线,也可能是被动操作,比如主库所在机器掉电...

2019-07-10 21:04:07 76

转载 mysql实战45讲--- 24 mysql怎么保证主备一致

Mysql主备的基本原理在状态1中,客户端直接访问节点A,而节点B只是备库,只是将A的binlog全部同步过来并应用到本地,这样可以保持节点B和节点A的数据是相同的。当需要切换的时候,就变成状态2,这时候客户端读取的是节点B,而A变成B的备库。在状态1中,B节点没有被直接访问,建议设置为readonly状态。1有时候一些运营类的查询会放到备库去上去查询,设置为只读可以防止误操...

2019-07-10 21:03:56 123

转载 mysql实战45讲--- 23 mysql怎么保证数据不丢失?

MySQL的wal机制,得到的结论是:只要redo log和binlog持久化到磁盘,就能确保mysql异常重新启动后,数据是可以恢复的。binlog的写入机制其实,binlog的写入逻辑比较简单:事务执行过程中,先把日志写到binlog cache,事务提交的时候,再把binlog cache的内容写到binlog文件中。一个事务的binlog是不能被拆开的,因此不论事务多大,也要...

2019-07-10 21:03:45 205

转载 mysql实战45讲--- 22 mysql有那些”饮鸩止渴”提高性能的方法?

22 mysql有那些”饮鸩止渴”提高性能的方法?正常的短连接模式是连接到数据库后,执行很少的SQL语句就断开,下次需要的时候再重新连接。如果使用的是短连接,在业务高峰期的时候,就可能出现连接数突然暴涨的情况。Mysql建立连接的过程,成本是很高的,除了正常的网络连接的3次握手外,还需要做登录权限判断和获得这个连接的数据读写权限。在数据库压力比较小的时候,这些额外的成本并不明显。但...

2019-07-10 21:03:17 143

转载 mysql实战45讲--- 21 为什么只修改一行的语句,锁这么多?

上一篇中介绍了间隙锁和next-key lock的概念,但是没有说明加锁规则加锁规则两个前提说明:1 mysql后面的版本可能会改变加锁策略,所以这个规则只限于截止到目前最新的版本,即5.x系列<=5.7.24, 8.0系列<=8.0.13.2如果大家在验证中发现有bad case的话,请提出来,后面会进行补充。因为间隙锁在可重复读隔离级别下才有效,所以本篇文章的...

2019-06-28 10:24:45 189

转载 mysql实战45讲--- 20 幻读是什么,幻读有什么问题?

例子:CREATE TABLE `t20` (`id` int(11) NOT NULL,`c` int(11) DEFAULT NULL,`d` int(11) DEFAULT NULL,PRIMARY KEY (`id`),KEY `c` (`c`)) ENGINE=InnoDB;insert into t20 values(0,0,0...

2019-06-28 10:23:52 326

转载 mysql实战45讲--- 16-19

16 | “order by”是怎么工作的?假设部分表定义:CREATE TABLE `t` ( `id` int(11) NOT NULL, `city` varchar(16) NOT NULL, `name` varchar(16) NOT NULL, `age` int(11) NOT NULL, `addr` varchar(128) DEFAULT NUL...

2019-06-28 10:22:14 366

转载 mysql实战45讲--- 7-15

07 | 行锁功过:怎么减少行锁对性能的影响?行锁Mysql行锁由引擎层实现两阶段锁行锁需要事务结束时才释放,这就是两阶段锁。所以需要合理安排事务中sql执行顺序,尽量把容易冲突的更新语句放在后面。死锁和死锁检测 1. 设置超时时间,innodb_lock_wait_timeout。 2. 死锁检测,发现死锁主动回滚某个事务,innodb_deadlock_...

2019-06-28 10:06:04 2260

转载 mysql实战45讲---6 全局锁和表锁

6全局锁和表锁数据库的锁设计是为了处理并发问题。作为多用户共享的资源,当出现并发访问的时候,数据库需要合理地控制资源访问的规则,而锁就是用来实现这些访问规则的重要数据结构。根据加锁的范围,mysql里面的锁大致可以分为全局锁、表锁和行锁三类。全局锁全局锁就是对整个数据库实例加锁,mysql提供了一个加全局读锁的方法,命令是flush tables with read lock(F...

2019-06-28 09:23:56 387

转载 mysql实战45讲---5 深入浅出索引(下)

5深入浅出索引(下)上一篇介绍了innodb索引的数据结构模型,这一篇将继续索引有关的概念create table T5 (ID int primary key,k int NOT NULL DEFAULT 0, s varchar(16) NOT NULL DEFAULT '',index k(k))engine=InnoDB;insert into T5 val...

2019-06-28 09:22:54 527

转载 mysql实战45讲---4 深入浅出索引(上)

4深入浅出索引(上)这一节分析到底什么是索引,索引是如何工作的索引的常见模型索引的出现是为了提高查询效率,但是实现索引的方式有很多,三种常见简单的数据结构:哈希表、有序数组和搜索树。哈希表是一种key-value存储数据的结构,思路很简单,把值放在数组里,用一个哈希函数把key换算成一个确定的值,然后把value放在这个位置。不可避免多个key值经过hash函数计算,会出现同...

2019-06-28 09:21:59 263

转载 mysql实战45讲---3.事务隔离:为什么你改了我还看不见?

3事务隔离:为什么你改了我还看不见?在数据库中,事务是要保证一组数据库操作,要么全部成功,要么全部失败,在mysql中,事务在引擎层实现,innodb支持事务隔离性与隔离级别事务,ACID(atomicity,consistency,isolation,durability),分析i,隔离性当数据库上有多个事务同时执行的时候,就可能出现脏读,不可重复读,幻读的问题,为了解决这些问...

2019-06-28 09:20:15 152

转载 mysql实战45讲---2. 日志系统:一条sql更新语句是如何执行的?

2日志系统:一条sql更新语句是如何执行的?前面了解了一个查询语句的执行流程,并介绍了执行过程中涉及的处理模块,一条查询语句的执行过程一般是经过连接器、分析器、优化器、执行器等功能模块,最后达到engine。这里分析一个update语句的流程mysql> create table T(ID int primary key, c int);更新语句mysql> up...

2019-06-28 09:19:09 232

转载 mysql实战45讲---1. 基础架构:一条sql查询语句如何执行?

1基础架构:一条sql查询语句如何执行?分析一个最简单的查询mysql> select * from T where ID=10;MySQL基本架构示意图大体来说,mysql可以分为server层和存储引擎层Server层包括连接器、查询缓存、分析器、优化器、执行器等,涵盖mysql的大多数核心服务功能,以及所有的内置函数,所有跨存储引擎的功能都在这一层实现,比如存...

2019-06-28 09:17:56 366

Google Guava 官方教程 - v1.1.pdf

Guava 工程包含了若干被 Google 的 Java 项目广泛依赖 的核心库,我们希望通过此文档为 Guava 中最流行和 最强大的功能,提供更具可读性和解释性的说明。

2019-11-28

mina中文参考手册

Apache Mina Server 是一个网络通信应用框架,也就是说,它主要是对基于TCP/IP、UDP/IP 协议栈的通信框架(当然,也可以提供JAVA 对象的序列化服务、虚拟机管道通信服务等), Mina 可以帮助我们快速开发高性能、高扩展性的网络通信应用,Mina 提供了事件驱动、异 步(Mina 的异步IO 默认使用的是JAVA NIO 作为底层支持)操作的编程模型

2012-06-19

oracle存储过程

学习oracle 过程的必备经典教材,语法+实例+调用。

2012-06-19

struts2入门教程

Struts2的使用人群逐渐增多,它在逐步吸引开发者和用户的目光,毫无疑问,大家最终都会选择于它,困为它确实是一个很优秀的框架。如果你想花最少的时间来获取对struts2的最大了解程度,则它将是你最好的选择。本着学习共享的精神,将总结的资料与所有的朋友共享,希望各位朋友多多指教

2012-06-19

ubuntu学习部落

ubuntu是基于linux操作系统,本书就是学习ubuntu的一本好书

2010-09-13

WEB精确打印控件Lodop

Lodop是一款专业的WEB打印控件,其设计目标是简单易用、功能足够强大,开创WEB打印开发的新局面。

2010-03-17

空空如也

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

TA关注的人

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