请求量稍微比较大-尽量避免长事务

概述 某些后台应用经常需要频繁的操作DB,为了保证数据出错时能回滚数据,通常都会使用事务。在使用事务的时候,尽量避免使用长事务,比如说:某个业务操作需要批量插入数据,而且数据量还不少,如果这整个操作都包在一个事务里面,只有等到数据操作完了,DB连接才会被释放,一旦外部系统发起请求,并发调用这个操作,那么一下子将有大量的DB连接被持有而没有被释放掉,这个时候,如果还有其他请求到来,就很大可能获取不到数...
阅读(1050) 评论(0)

Mysql 索引知识点

介绍MySql的索引知识点。...
阅读(809) 评论(2)

Mysql B+树学习

概述 要描述清楚B+树,得先了解二叉查找数,平衡二叉树。 二叉查找树 任意节点,它的左子树如果不为空,那么左子树上所有节点的值都小于根节点的值; 任意节点,他的右子树如果不为空,那么右子树上的所有节点的值大于根节点的值。这个特性给查找带来了方便,如上图,要找key=3的键值,只要从5这个节点左子树进行递归查找即可,右子树的节点可以完全不理会。 平衡二叉树 二叉查找树有些缺陷,因为它对树的左...
阅读(1026) 评论(3)

SQL计算timestamp的差值小技巧

概述有时候我们需要按照时间找出某些记录,比如说:算出离销售时间前1个小时的记录。 通常我们可以使用MYSQL的timestampdiff函数来做,但是这样没法使用到索引,如果数据量大的话,会造成慢查询。用代码计算出时间后再传给SQL我们可以利用JAVA代码,先把时间计算好,然后传给SQL语句,避免使用MYSQL的函数。public long xxxx(long sellTimeFrom){...
阅读(228) 评论(0)

照顾好应用的缓存-应付大流量

概述为了提升系统的响应速度,通常会系统中使用缓存,例如:中央缓存,本地缓存等。但是使用缓存有好有坏,坏处是,如果缓存数据是旧的,那么应用输出的数据便是错误的数据,可能造成严重的影响。本文介绍一些让缓存保持新鲜以及使用缓存的一些技巧。利用MQ实时刷新缓存一旦db数据发生变化,则可以发送一条mq消息,通知消费者,信息有变动,消费者感知到后,立刻调用刷新缓存的接口,把数据涮新到中央缓存里。这里有三个点要注...
阅读(1100) 评论(0)

利用DB生成业务主键

概述 利用DB生成业务主键,生成业务主键的方法各种各样,其中一种是利用DB表主键自增的方式来生成唯一性的业务主键,下文简单介绍一下。 代码 以MySql作为例子,操作DB的数据层是Mybatis。CREATE TABLE `key_gen` ( `business_no` bigint(20) unsigned NOT NULL AUTO_INCREMENT COMMENT '自增主键',...
阅读(844) 评论(0)

center os 安装mysql5.6

软件 MySQL-server-5.6.13-1.el6.x86_64.rpm MySQL-client-5.6.13-1.el6.x86_64.rpm 安装命令 rpm -ivh MySQL-server-5.6.13-1.el6.x86_64.rpm rpm -ivh MySQL-client-5.6.13-1.el6.x86_64.rpm 启动mysql/etc/rc.d/init.d/mys...
阅读(999) 评论(0)

使用Spring AOP切面解决数据库读写分离

为了减轻数据库的压力,一般会使用数据库主从(master/slave)的方式,但是这种方式会给应用程序带来一定的麻烦,比如说,应用程序如何做到把数据写到master库,而读取数据的时候,从slave库读取。如果应用程序判断失误,把数据写入到slave库,会给系统造成致命的打击。 解决读写分离的方案很多,常用的有SQL解析、动态设置数据源。SQL解析主要是通过分析sql语句是insert/se...
阅读(11997) 评论(5)
    个人资料
    • 访问:381295次
    • 积分:3959
    • 等级:
    • 排名:第8806名
    • 原创:119篇
    • 转载:5篇
    • 译文:0篇
    • 评论:183条
    博客专栏