自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(22)
  • 资源 (5)
  • 收藏
  • 关注

原创 mysql 慢sql优化记录

马上修改索引 idx_userid(userid,isread,msgnumber),执行一下只耗时0.5秒了。这里isread和msgnumber两列的值属于枚举类型,加入索引在查询时效果没那么大,而且msgnumber这里是<>,用不上索引。仔细分析是查询语句中用到了非索引字段,如果能把语句中涉及到的字段都加入索引,这样SQL在执行中可以减少回表时间,回表时间在SQL执行中占比挺大的。表上索引有 idx_userid(userid),这条SQL是一条比较标准的统计SQL,涉及字段也少。

2024-06-21 09:41:33 272

原创 mysql in 子查询中 子查询会多次执行 还是只执行一次保存结果

为了提高性能,可以考虑使用其他查询技术,如`JOIN`或物化子查询(将子查询结果存储在一个临时表中),以减少子查询的执行次数。- 如果子查询是相关子查询(Correlated Subquery),即子查询中引用了外部查询的列,那么子查询将为外部查询的每一行执行一次。- 如果子查询不依赖于外部查询的任何参数,MySQL会认为子查询的结果是固定的,因此它将执行子查询一次,并将结果缓存起来。在MySQL中,`IN`子查询的执行方式取决于查询的具体情况和MySQL的查询优化器的决定。

2024-04-19 18:08:33 258

原创 solr functionquery函数查询自定义函数实现

solr functionquery 自定义函数contain代码示例

2024-03-21 16:34:45 1181 1

原创 xss mybatis sql注入漏洞修改小技巧

mybatis中使用#号占位符会根据参数值类型增加引号,而$占位符则是直接显示原值,所以存在被SQL注入的可能。如果改xml就能修复这个问题,工作量少很多,第2条比较简单,第1条复杂点,试了多次终于可以了,下面是方案,使用eclipse的正则替换,半小时就把这个问题解决了。查看发过来的文档,问题SQL集中在几种SQL,ids参数值'aa','bb' name参数值 aa。等保现在是系统上线的基本要求了,所以 工作中mybatis推荐使用#占位符,避免SQL注入,

2024-03-05 11:54:55 572

原创 mysql SQL优化工作记录(1)

fid是表的主键,按主键查询怎么会出现扫全表的情况了,原因是fid是字符串类型,传值-1 mysql会使用函数将-1转为字符串在进行比较,无法使用到表的索引,改成'-1' 后生产打包,这条慢SQL消失了,问题解决。今天生产数据库预警了,马上拉一下慢日志,定位了慢SQL,发出来大家一起学习。

2024-03-05 11:09:11 385

原创 Https SSL证书 本地化OCSP地址是什么

通过远程复现问题并抓包,我们发现在客户电脑上每次打开专用浏览器都会先访问一个国外证书网站在继续请求,而访问国外证书的网站的不稳定性导致了无法正常打开网站。我们实际使用中发现2000左右的DV证书 证书授权信息地址是国外的,而5000左右的OV证书证书授权信息地址是国内的地址。大家可以看看访问网站的证书的详细信息中授权信息访问那一行,可以知道浏览器在校验这个证书时会去访问的授权信息地址了。在给网站换上了阿里云的OV证书后,地区反馈访问网站已经正常了,这个访问白屏的问题解决了。

2024-03-04 17:52:50 421

原创 nginx重试机制导致系统雪崩

最近在上线项目的过程中遇到由于一个请求大量查询数据库,导致生产系统宕机。后期在把开发、dba、运维都拉在一起开会讨论时,按dba提供的数据库配置 性能后都无法相信这个请求会导致数据库宕机。后面重新复盘,在执行一次这个请求后仔细排查执行过程,才发现是由于nginx自带的请求故障转移导致了这次的宕机。 我们系统是采用nginx作为负载均衡工具,负责转发请求到后端的应用节点。nginx有一个故障请求重试的机制。在后端节点请求超时时会把该请求自动转发到下一个节点,如果下一个节点返回结果则将该结果返回给用户..

2022-03-21 19:43:13 2147

原创 Redis sortedset 跳跃表实现代理ip池

线上系统功能有个场景,需要获取代理IP进行爬取数据。对接的代理IP的返回接口每个IP有存活时间,需要保证一直取到的IP是有效IP,之前代码实现是定时拉取代理IP,并存放在Redis中,存活时间即Redis key的过期时间,取的时候以key的前缀查找随机取一个。这种方式实现简单,也符合需求,但是上线后Redis预警很多,查看慢日志发现大部分是该功能模糊查找key这个问题。 对于这个场景可以采用Redis 有序队列sorted set来实现,相关命令是zdd-插入,zrange-获取。定时拉...

2022-03-21 11:51:16 1997

转载 架构问题的探寻

<br />随想:人人网之新鲜事存储实现 转载自http://www.thinklog.cn/?post=344<br /> <br />现在的SNS太火了,大家都在搞SNS,<br />我也很喜欢用这个,呵呵,从07年开始就一直在用校内网,现在的人人网,<br />每天总想登陆看看好友的新鲜事,<br />最近被问到这么个问题:<br />如何设计实现好友的新鲜事存储,设计一下数据结构,以及实现的方法,<br />说实话对这个用户数量巨大的系统,存储还真是个问题,<br />正好看了一篇文章  《又拍网架

2010-09-04 18:20:00 626

转载 Servlet 接触很多,用的也很多,但其中的原理却不是很清楚,补补

<br /><br />什么是Servlet技术<br />   Servlet技术是Sun公司提供的一种实现动态网页的解决方案,它是基于JAVA编程语言的WEB服务器端编程技术。一个Servlet程序就是一个实现了特殊JAVA接口的类,它由支持Servlet(具有Servlet引擎)的WEB服务器调用和启动运行。一个Servlet程序负责处理它所对应的一个或一组URL访问地址的请求,并接受客户端发出的访问请求信息和产生响应信息<br />       Servlet,可以实现动态的页面,可以针对不同的请求

2010-08-28 21:49:00 1047

原创 Spring事务管理机制的实现原理-动态代理

<br /> 之前在做项目中遇到spring无法进行事务代理问题,最后发现是因为没有写接口,原因当时明白了,看到这篇文章写的清楚些,转过来<br /> <br />我们先来分析一下Spring事务管理机制的实现原理。由于Spring内置AOP默认使用动态代理模式实现,我们就先来分析一下动态代理模式的实现方 法。动态代理模式的核心就在于代码中不出现与具体应用层相关联的接口或者类引用,如上所说,这个代理类适用于任何接口的实现。下面我们来看一个例子。 public class TxHandler implemen

2010-08-17 21:53:00 10854

转载 详细介绍spring的事物属性,很详细

<br />Spring声明式事务让我们从复杂的事务处理中得到解脱。使得我们再也无需要去处理获得连接、关闭连接、事务提交和回滚等这些操作。再也无需要我们在与事务相关的方法中处理大量的try…catch…finally代码。 <br />我们在使用Spring声明式事务时,有一个非常重要的概念就是事务属性。事务属性通常由事务的传播行为,事务的隔离级别,事务的超时值和事务只读标志组成。我们在进行事务划分时,需要进行事务定义,也就是配置事务的属性。 <br />Spring在TransactionDefiniti

2010-08-17 21:31:00 1844

转载 遍历ArrayList,Iterator和for循环哪个更快?

<br />经常用,心血来潮搜索下答案,整理下内容<br /> <br />简单:<br />Iterator 主要性能开销在next方法体,其一:对记录集进行检测,如果在迭代的过程中,记录集有被修改,会抛出异常;其二:next方法体内有try...catch方法体,这也会影响性能,JVM不能对try...catch块内的代码进行优化。<br />而for因为不管数据被中途修改,也不进行异常处理,所以当然快啦<br /> <br />详细:<br />ArrayList的iterator是在Abstract

2010-08-10 23:11:00 5571

转载 MVC模式及MVC1和MVC2模式的区别

文章分类:Java编程 MVC模式是"Model-View-Controller"的缩写,中文翻译为"模式-视图-控制器"。MVC应用程序总是由这三个部分组成。Event(事件)导致Controller改变Model或View,或者同时改变两者。只要Controller改变了Models的数据或者属性,所有依赖的View都会自动更新。类似的,只要Controller改变了View,View会从潜在的Model中获取数据来刷新自己。如下图: MVC模式在具体的应用中,又分为MVC

2010-08-08 11:30:00 726

转载 extjs 中store 关于baseParams的一个bug

<br />困扰于roload参数不变的问题,很幸运在网上找到了答案,贴在下面:<br />http://www.javaeye.com/topic/713163<br /> <br /><br />ExtJs 中,我们使用GirdPanel的时候往往需要给后台传递查询条件。<br />一般是通过修改Store的baseParams。<br /> Js代码 var store = GirdPanel.getStore();  store.baseParams = { 查询条件 }  store.reload

2010-07-28 11:38:00 6576 1

转载 Struts 2中的OGNL 精华

<br />本人是一个EL(Expression Language,以下译为表达式语言)的支持者。因为我对<% %>写法极为反感,忘记了在那本书上看到的一句话——“使用标志(Tag)的一个目的就是避免在JSP页面中出现过多的<%%>的语句,使页面与后台代码分离。”<br />表达式语言主要有以下几大好处:避免(MyType) request.getAttribute()和myBean.getMyProperty()之类的语句,使页面更简洁;支持运算符(如+-*/),比普通的标志具有更高的自由度和更强的功能;

2010-06-21 21:34:00 520

转载 Hibernate事务管理

<br />数据库事务ACID特征: <br />Atomic(原子性):指整个数据库事务是不可分割的工作单元。 <br />Consistency(一致性):指数据库事务不能破坏关系数据的完整性以及业务逻辑上的一致性。 <br />Isolation(隔离性):指的是在并发环境中,当不同的事务同时操纵相同的数据时,每个事务都有各自的完整数据空间。 <br />Durability(持久性):指的是只要事务成功结束,它对数据库所作的更新就必须永久保存下来。 <br /><br />数据库系统支持两种事务模式

2010-06-21 20:34:00 1648

转载 数据库索引研究 转帖加原创

<br /> 数据库索引应用 <br />一、索引的概念 <br />  索引就是加快检索表中数据的方法。数据库的索引类似于书籍的索引。在书籍中,索引允许用户不必翻阅完整个书就能迅速地找到所需要的信息。在数据库中,索引也允许数据库程序迅速地找到表中的数据,而不必扫描整个数据库。 <br />二、索引的特点 <br />  1.索引可以加快数据库的检索速度 <br />  2.索引降低了数据库插入、修改、删除等维护任务的速度 <br />  3.索引创建在表上,不能创建在视图上 <br />  4.索引既可以

2010-06-19 22:07:00 590

原创 什么是数据库 复习下数据库的基础

<br />数据库是依照某种数据模型组织起来并存放二级存储器中的数据集合。这种数据集合具有如下特点:尽可能不重复,以最优方式为某个特定组织的多种应用服务,其数据结构独立于使用它的应用程序,对数据的增、删、改和检索由统一软件进行管理和控制。从发展的历史看,数据库是数据管理的高级阶段,它是由文件管理系统发展起来的。 数据库的基本结构分三个层次,反映了观察数据库的三种不同角度。 (1)物理数据层。它是数据库的最内层,是物理存贮设备上实际存储的数据的集合。这些数据是原始数据,是用户加工的对象,由内部

2010-06-19 21:12:00 509

转载 spring aop的讲解

<br /><br />Spring AOP学习笔记 需明确的几个概念: 通知(Advice):用于告知系统将有哪些新的行为。 切入点(Pointcut):定义了通知应该在应用到那些连接点。 目标对象(Target):被通知的对象。 代理(Proxy):将通知应用到目标对象后创建的对象。<br /> <br />需明确的几个概念:<br />l         通知(Advice):用于告知系统将有哪些新的行为。<br />l         切入点(Pointcut):定义了通知应该在应用到那些连接点。<

2010-06-19 01:04:00 736

原创 事务的:原子性、一致性、分离性、持久性

<br />原子性、一致性、分离性、持久性 (1) 原子性 <br /> 事务的原子性指的是,事务中包含的程序作为数据库的逻辑工作单位,它所做的对数据修改操作要么全部执行,要么完全不执行。这种特性称为原子性。 <br /> 事务的原子性要求,如果把一个事务可看作是一个程序,它要么完整的被执行,要么完全不执行。就是说事务的操纵序列或者完全应用到数据库或者完全不影响数据库。这种特性称为原子性。 <br />  假如用户在一个事务内完成了对数据库的更新,这时所有的更新对外部世界必须是可见的,或者完全没有更新。

2010-06-17 17:16:00 893

原创 Lucene学习

《Lucene3.0原理与代码分析》是一本学习Lucene十分好的书。电子版可以直接去作者的博客阅读。作者博客地址:http://blog.csdn.net/forfuture1978/category/604866.aspx主要分析了Lucene的运行原理,具体内部代码分析都十分明晰。《Lucene in action》是由Lucene的开发者编著,讲了Lucene如何使用以及其中几

2010-05-11 12:25:00 466

solr functionquery自定义函数contain示例

基于solr4版本,jdk6。 solr functionquery函数查询功能强大,但字符串函数比较缺乏,该示例是contain示例,表示值中包含传入的字符串即返回1 否则返回0,可用于solr查询中如果某个字段包含动态传入的值在排名优先。有其他查询排序需求可以按照这个实例进行添加

2024-03-21

.net 实现通讯录 插入 删除 分页 编辑

可实现查询,编辑,删除,插入,分页功能,并且实现对编辑和插入的数据进行验证。把编辑面板与插入面板结合在一起。使用了.net的datagrid控件

2009-12-13

MP3播放器 Java

Java实现的MP3播放器,不需要安装JMStudio,基于javasound实现的,可以添加文件夹,选择上一首,下一首

2009-11-10

打砖块 Java代码

用Java写的,可以实现打砖块游戏,可以查看分数,重新开始等功能

2009-10-27

MFC 可以画出拉伸的弹簧,可以控制增幅,频率

MFC 可以画出拉伸的弹簧,可以控制增幅,频率 涉及对话框,画图,动画

2008-12-19

vc中的时钟(MFC)代码

本代码用的是c++中的MFC编码,时间可以正常行走,并且可实现通过对话框调时间的功能。

2008-12-19

空空如也

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

TA关注的人

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