- 博客(14)
- 资源 (15)
- 问答 (1)
- 收藏
- 关注
原创 并发编程的挑战
1、如何减少上下文的切换 (1)无所并发编程。多线程竞争时,会引起上下文切换,所以多线程处理数据时,可以用一些办法来避免使用锁,如将数据的id按照hash算法取模分段,不同的线程处理不同段的数据。 (2)CAS算法。compare and set 算法。java的atomic包使用cas算法来更新数据,而不需要加锁。 (3)使用最少的线程。避免创建不需要的线程 (4)协程。在单线程里实现多
2017-01-21 23:32:12 477
转载 Java过滤器与SpringMVC拦截器之间的关系与区别
今天学习和认识了一下,过滤器和SpringMVC的拦截器的区别,学到了不少的东西,以前一直以为拦截器就是过滤器实现的,现在想想还真是一种错误啊,而且看的比较粗浅,没有一个全局而又细致的认识,由于已至深夜,时间原因,我就把一些网友的观点重点摘录下来,大家仔细看后也一定会有一个比较新的认识(在此非常感谢那些大牛们的无私奉献,分享他们的经验与心得,才能让像我这样的小白有机会站一下你们这些巨人的肩膀,才能
2017-01-17 09:32:11 387
原创 优化sql
1、 优化group by语句 默认情况下,mysql对所有group bycol1,col2…的字段进行排序。这与在查询中指定order by col1,col2…类似。因此,如果显式包括一个包含相同的列的order by 子句,则对mysql的实际执行性能没有什么影响。 如果查询包括groupby 但用户想要避免排序结果的消耗,则可以指定order by null 禁止排序,如下面例子:
2017-01-10 16:00:41 299
原创 redis使用手册
字符串 1、Redis命令不区分大小写 2、字符串型是Redis最基本的数据类型,能存任何形式的字符串,包括二进制数据。一个字符串类型最大容量是512M 3、字符串类型是其他4种数据类型的基础,其他数据类型和字符串类型的差别从某种程度来说只是组织字符串的形式不同 4、incr key 当存储的字符串是整数形式时候,Redis提供了incr命令,其作用是让当前键值递增,并返回增值后的
2017-01-10 14:51:40 508
转载 mybatis执行批量更新batch update 的方法(oracle,mysql)
oracle和mysql数据库的批量update在mybatis中配置不太一样: oracle数据库: update id="batchUpdate" parameterType="java.util.List"> foreach collection="list" item="item" index="index" open="begin" close="end;" sepa
2017-01-10 14:17:14 1019
转载 MyBatis批量插入数据
在程序中封装了一个List集合对象,然后需要把该集合中的实体插入到数据库中,由于项目使用了Spring+MyBatis的配置,所以打算使用MyBatis批量插入,由于之前没用过批量插入,在网上找了一些资料后最终实现了,把详细过程贴出来。 实体类TrainRecord结构如下: Java代码 public class TrainRecord im
2017-01-10 14:15:07 491
转载 MySql小点心—1、赋值操作符"="与":="
对于刚接触到mysql的程序员来说,会对这两个符号有疑问,因为会发现有的代码里用这个有的用另一个。 当然他们是有区别的。他们的区别也比较简单: “:=” 是真正意义上的赋值操作,左边的变量设置为右边的值。 "=" 则只在两种情况下作为赋值用,第一种就是在SET语句里面,SET var = value; 另一种是在UPDATE语句里面的那个SET,如update table
2017-01-10 11:03:09 683
原创 mysql索引分类
索引是在mysql的存储引擎层中实现的,而不是在服务器层实现的。所以每种存储引擎的索引都不一定完全相同,也不是所有的存储引擎都支持所有的索引类型。 (1) Btree索引:最常见的索引类型,大多数引擎都支持B树索引。 (2) HASH索引:只有memory引擎支持,使用场景简单。 (3) Rtree索引:MyISAM的一个特殊索引类型,主要用于地理空间数据类型,
2017-01-10 10:42:32 287
转载 索引合并和组合索引的比较
在教务系统补考子系统的开发过程中,安排考场的算法运算时间非常慢,需要32秒才能完成考场的分配。查找原因,由于需要在学生补考科目表里面进行查找数据——该表的数据目前已达200万条,所以算法的大部分时间都花在查找数据方面。为了解决以上问题,我们决定对数据表进行分析,创建合适的索引。 在创建索引过程中,我们发现查询语句已经为查询列创建了索引,但是是为每个列单独创建的——SELECT * FRO
2017-01-09 22:26:33 743
转载 MySQL查看SQL语句执行效率
Explain命令在解决数据库性能上是第一推荐使用命令,大部分的性能问题可以通过此命令来简单的解决,Explain可以用来查看 SQL 语句的执行效 果,可以帮助选择更好的索引和优化查询语句,写出更好的优化语句。 Explain语法:explain select … from … [where ...] 例如:explain select * from news; 输出:
2017-01-09 09:53:22 84
转载 Oracle中ROWNUM的使用技巧。
ROWNUM是一种伪列,它会根据返回记录生成一个序列化的数字。利用ROWNUM,我们可以生产一些原先难以实现的结果输出,但因为它是伪列的这个特殊性,我们在使用时也需要注意一些事项,不要掉入“陷阱”。下面就介绍一下它的使用技巧及注意事项。 1 特殊结果输出 利用ROWNUM,我们可以做到一些特殊方式的输出。 1.1 Top N结果输出 我们如果希望取输出结果的前面几条
2017-01-06 14:24:12 111
转载 MyBatis/Ibatis中#和$的区别
MyBatis/Ibatis中#和$的区别 1. #将传入的数据都当成一个字符串,会对自动传入的数据加一个双引号。如:order by #user_id#,如果传入的值是111,那么解析成sql时的值为order by "111", 如果传入的值是id,则解析成的sql为order by "id". 2. $将传入的数据直接显示生成在sql中。如:order by $us
2017-01-06 13:50:42 110
转载 mybatis如何防止sql注入
sql注入大家都不陌生,是一种常见的攻击方式,攻击者在界面的表单信息或url上输入一些奇怪的sql片段,例如“or ‘1’=’1’”这样的语句,有可能入侵参数校验不足的应用程序。所以在我们的应用中需要做一些工作,来防备这样的攻击方式。在一些安全性很高的应用中,比如银行软件,经常使用将sql语句全部替换为存储过程这样的方式,来防止sql注入,这当然是一种很安全的方式,但我们平时开发中,可能不需要这种
2017-01-06 11:41:15 476
转载 代理和反向代理
引用 出于安全考虑,局域网内的机器访问访问墙外的网站借助于代理服务器进行,如果把局域网外Internet想象成一个巨大的资源库,局域网内的用户要访问这个库里的资源必须统一通过代理服务器进行。反过来,如果局域网向Internet提供资源,让Internet上的用户访问局域网内的资源也可以设置成一个代理服务器,只不过与我们常用的代理服务器方向正好相反,所以叫反向代理(Reverse Pr
2017-01-05 17:06:00 433
redis-2.4.5 for windows
2017-09-23
thrift-0.9.2 for windows
2017-09-23
基于Spring + Drools6.4规则引擎代码实例.
2017-09-23
考试报名管理(C语言课程设计)
2014-06-12
项目中布局文件怎么引用另一个项目自定义的组件
2014-12-06
TA创建的收藏夹 TA关注的收藏夹
TA关注的人