合理使用事务提升性能

1.进入事务前,先进行各种验证,如果验证不通过就不用进入事务了。

如: (1)ATM转账应该先判断账号是否合法,是否是自己给自己转,是否卡中金额大于转账的金额...

(2)参加一个活动要判断是否有机会,是否在黑名单中,是否今天参加次数达到上限或其他限制....

2.不要把准备工作放入事务,只把必要的操作放入事务

3.事务是顺序执行,是并行计算的敌人,范围越小,意味性能越大。

4.如果能够从业务上解决的事务,就不要用技术事务如JTA 2pc或数据库乐观锁等来解决。

时间: 2024-10-08 09:08:36

合理使用事务提升性能的相关文章

使用事务提升sqlite insert的性能

昨天发现sqlite插入性能很低,搜索了一下发现,其实sqlite的插入可以做到每秒50000条,但是处理事务的速度慢: (19) INSERT is really slow - I can only do few dozen INSERTs per second Actually, SQLite will easily do 50,000 or more INSERT statements per second on an average desktop computer. But it wi

提升性能-事件委托技术

--- title: 提升性能——事件委托技术 date: 2016-05-11 22:13:43 tags: [javascript,improving performance, font-end] --- 提升页面性能之事件委托技术 (整理摘选自<Javascript高级程序设计>)概述 利用事件冒泡,只指定一个事件处理程序,就可以管理某一类型的所有事件. 实际例子 HTML部分 <ul id = "mylinks"> <li id = "g

paip.提升性能3倍--使用栈跟VirtualAlloc代替堆的使用.

#----为什么要设计堆栈,它有什么独特的用途? 为了性能 ....  堆比栈的性能 也有的说法为了编程容易...这个是错误的.因为使用堆+func也能实现编程简单地.. #----为什么stack 比堆快,stackAccess 要快两到三倍 主要的2点::  使用堆额外的操作多,而且机器硬件上直接支持栈操作.. 堆栈都是一段内存条中的内存区域,感觉上,应该上没有多大的访问速度差别..但是,实际上,还是有很大的的速度效率区别.. 1.存取路径短1倍. 堆的分配/释放都要比栈要慢的多 结论:可以

Android ViewPager Fragment使用懒加载提升性能

?? Android ViewPager Fragment使用懒加载提升性能 Fragment在如今的Android开发中越来越普遍,但是当ViewPager结合Fragment时候,由于Android ViewPager内在的加载机制,导致一个比较严重的加载性能问题,具体来说,假设一个ViewPager中有n多个Fragment,那么ViewPager在初始化阶段将一次性的初始化FragmentPagerAdapter中的至少3个Fragment(如果Fragment多于3),创建和加载Fra

通过jdbc使用PreparedStatement,提升性能,防止sql注入

为什么要使用PreparedStatement? 一.通过PreparedStatement提升性能 Statement主要用于执行静态SQL语句,即内容固定不变的SQL语句.Statement每执行一次都要对传入的SQL语句编译一次,效率较差.     某些情况下,SQL语句只是其中的参数有所不同,其余子句完全相同,适用于PreparedStatement.PreparedStatement的另外一个好处就是预防sql注入攻击     PreparedStatement是接口,继承自State

润乾集算报表提升性能之过程优化

报表出现性能问题需要对数据源计算进行优化时,执行路径难以确定从而被干预是阻碍报表优化的难题之一.由于数据库执行路径对开发人员不透明,报表优化需要指定执行路径时,程序员会很难甚至无法干预.而一般报表工具不具备强计算能力,大部分计算仍然要依靠数据库进行,这就导致很多报表优化效果不理想. 不同于一般报表工具,润乾集算报表内置了专门用于数据计算的集算引擎,开发人员可以通过编写集算脚本完成报表数据源准备.与数据库执行SQL路径不可控相比,集算脚本的执行过程是可控的,开发人员可根据实际情况编写或更改计算执行

数据库提升性能

Mysql Blob通过压缩来提升性能 对于blob字段,由于当前版本较低,5.0目前文件格式默认为compact,还不支持compress格式的压缩.我觉得可以采用如下方式来节省空间.1.通过应用服务器端的压缩,比如zlib算法,进行压缩然后存入数据库.当然应用需要先读数据,压缩,然后再写新的表,然后互相rename即可.好处:         1.1 通过压缩,可能app端会带来CPU的上升,但是通过把这个过程转移到app层,可以减少db层的压力.         1.2 同时由于压缩后数据

【火炉炼AI】深度学习006-移花接木-用Keras迁移学习提升性能

[火炉炼AI]深度学习006-移花接木-用Keras迁移学习提升性能 (本文所使用的Python库和版本号: Python 3.6, Numpy 1.14, scikit-learn 0.19, matplotlib 2.2, Keras 2.1.6, Tensorflow 1.9.0) 上一篇文章我们用自己定义的模型来解决了二分类问题,在20个回合的训练之后得到了大约74%的准确率,一方面是我们的epoch太小的原因,另外一方面也是由于模型太简单,结构简单,故而不能做太复杂的事情,那么怎么提升

【火炉炼AI】深度学习009-用Keras迁移学习提升性能(多分类问题)

[火炉炼AI]深度学习009-用Keras迁移学习提升性能(多分类问题) (本文所使用的Python库和版本号: Python 3.6, Numpy 1.14, scikit-learn 0.19, matplotlib 2.2, Keras 2.1.6, Tensorflow 1.9.0) 本文是仿照前面的文章[火炉炼AI]深度学习006-移花接木-用Keras迁移学习提升性能,原文是针对二分类问题,使用迁移学习的方式来提升准确率,此处我用迁移学习的方式来提升多分类问题的准确率. 同时,在我前