优点 1. 运行速度:对于很简单的sql,存储过程没有什么优势。对于复杂的业务逻辑,因为在存储过程创建的时候,数据库已经对其进行了一次解析和优化。存储过程一旦执行,在内存中就会保留一份这个存储过程,这样下次再执行同样的存储过程时,可以从内存中直接调用,所以执行速度会比普通sql快。 2. 减少网络传 ...
分类:
其他好文 时间:
2018-01-27 13:53:40
阅读次数:
155
InnoDB:支持事务处理等不加锁读取支持外键支持行锁不支持FULLTEXT类型的索引不保存表的具体行数,扫描表来计算有多少行DELETE 表时,是一行一行的删除InnoDB 把数据和索引存放在表空间里面跨平台可直接拷贝使用InnoDB中必须包含AUTO_INCREMENT类型字段的索引表格很难被压 ...
分类:
数据库 时间:
2018-01-26 18:48:48
阅读次数:
172
并发环境下进行编程时,需要使用锁机制来同步多线程间的操作,保证共享资源的互斥访问。加锁会带来性能上的损坏,似乎是众所周知的事情。然而,加锁本身不会带来多少的性能消耗,性能主要是在线程的获取锁的过程。如果只有一个线程竞争锁,此时并不存在多线程竞争的情况,那么JVM会进行优化,那么这时加锁带来的性能消耗 ...
分类:
编程语言 时间:
2018-01-25 18:17:03
阅读次数:
229
Java:多线程基础(1) 实现多线程的两种方式 1.继承Thread类 【说明】 2.实现Runnable接口 3.启用线程 共享数据及线程安全 多个线程访问同一个变量的错误实例 使用synchronized关键字加锁 currentThread()方法 isAlive()方法 sleep()方法 ...
分类:
编程语言 时间:
2018-01-25 15:39:39
阅读次数:
184
当多个事务在数据库中并发地执行时,数据的一致性可能无法再维持。系统有必要控制各事务之间的相互作用,这是通过被称为并发控制的机制来实现的。最常用的机制是各种封锁协议、时间戳排序机制、有效性检查技术与多版本机制。一、封锁协议是一组规则,这些规则阐明了事务何时对数据库中的数据项进行加锁和解锁。两阶段封锁协 ...
分类:
数据库 时间:
2018-01-25 00:30:10
阅读次数:
188
之前和大家介绍过QNX上的线程同步方法metux和semophore,通过这两种方法可以对一个或者几个资源进行加锁,避免资源使用上的冲突。在另一种情况下,某个线程需要在其它线程完成工作后才继续执行,这时就需要使用到线程同步方法barrier。 举个现实的例子,假设有三个士兵在操作一门高炮,一个负责装 ...
分类:
编程语言 时间:
2018-01-24 22:06:55
阅读次数:
210
转载自: "使用Guava retrying优雅的实现接口重调机制" "Guava retrying:基于 guava 的重试组件" 实际项目中,为了考虑网络抖动,加锁并发冲突等场景,我们经常需要对异常操作进行重试。优雅的重试 其实就是将业务处理逻辑和重试逻辑分离。 下面是原文地址: API 接口调 ...
分类:
其他好文 时间:
2018-01-22 19:30:04
阅读次数:
3738
Java.util.concurrent.locks包提供了一个包含多种接口和类的框架,它针对条件进行加锁和等待。不同于对象的内置加锁同步以及java.lang.Object的等待/通知机制,包含锁框架的并发工具类通过轮询锁、显示等待及其它方式改善这种机制。锁框架包含了经常使用的锁、重入锁、条件、读写锁以及冲入读写锁等类别。一、锁Lock实现提供了比使用synchronized方法和语句可获得的更
分类:
编程语言 时间:
2018-01-21 19:02:54
阅读次数:
235
最近的任务是写一个多线程的东西,就得接触多线程队列了,我反正是没学过分布式的,代码全凭感觉写出来的,不过运气好,代码能够work= = 话不多说,直接给代码吧,一个多消费者,多生产者的模式。假设我的任务是求队列的中位数是啥,每消费10000次的时候,我要知道中位数是什么。 至于加不加锁,这个看你了, ...
分类:
编程语言 时间:
2018-01-21 13:41:48
阅读次数:
393
mysql单机并发量: 机器硬盘 300并发 SSD硬盘 700并发 redis单机并发量10万 tomcat单机最优并发2000 java高并发测试用例: 加锁 互斥锁: 缓存名:amount, 主动缓存(时间短) 缓存名:amount_backup ,被动缓存(时间长) ...
分类:
其他好文 时间:
2018-01-20 14:02:19
阅读次数:
258