java一日一条 6月21日 首先介绍一些乐观锁与悲观锁: 悲观锁:总是假设最坏的情况,每次去拿数据的时候都认为别人会修改,所以每次在拿数据的时候都会上锁,这样别人想拿这个数据就会阻塞直到它拿到锁。传统的关系型数据库里边就用到了很多这种锁机制,比如行锁,表锁等,读锁,写锁等,都是在做操作之前先上锁。 ...
分类:
编程语言 时间:
2018-07-13 12:12:29
阅读次数:
157
mysql的备份可以分为冷备份和热备份两种。 冷备份:停止数据库服务进行备份 热备份:不停止数据库服务进行备份 mysql的存储引擎为MyIsam时,只支持冷备份,可以直接复制mysql的data目录下的数据库文件。这种方式需要注意mysql版本兼容性问题,同时,为了保证一致性,必须停机或者锁表进行 ...
分类:
数据库 时间:
2018-07-11 14:45:42
阅读次数:
212
加字段是痛苦的,需要对表进行重建,尤其是对亿级别的大表,虽然Online DDL可以避免锁表,但如果在主库上执行耗时30分钟,那么再复制到从库上执行,主从复制就出现延迟。使用instant ADD COLUMN特性,只需弹下烟灰的时间,字段就加好了,享受MongoDB那样的非结构化存储的灵活方便。限制1、如果指定了AFTER,字段必须是在最后一列,否则会重新建立表2、不适用于ROW_FORMAT
分类:
数据库 时间:
2018-07-10 18:29:34
阅读次数:
299
Mysql主从复制作用原理1、在业务复杂的系统中,有这么一个情景,有一句sql语句需要锁表,导致暂时不能使用读的服务,那么就很影响运行中的业务,使用主从复制,让主库负责写,从库负责读,这样,即使主库出现了锁表的情景,通过读从库也可以保证业务的正常运作。2、做数据的热备3、架构的扩展。业务量越来越大,I/O访问频率过高,单机无法满足,此时做多库的存储,降低磁盘I/O访问的频率,提高单个机器的I/O性
分类:
数据库 时间:
2018-07-10 17:42:45
阅读次数:
166
优点总结:可以达到时时同步,无延迟现象发生完全兼容MySQL对于集群中新节点的加入,维护起来很简单数据的强一致性不足之处总结:只支持Innodb存储引擎存在多节点update更新问题,也就是写放大问题在线DDL语句,锁表问题sst针对新节点加入的传输代价过高的问题 看下写放大的原理图 ...
分类:
数据库 时间:
2018-07-10 00:38:35
阅读次数:
305
Mysql主从复制作用原理1、在业务复杂的系统中,有这么一个情景,有一句sql语句需要锁表,导致暂时不能使用读的服务,那么就很影响运行中的业务,使用主从复制,让主库负责写,从库负责读,这样,即使主库出现了锁表的情景,通过读从库也可以保证业务的正常运作。2、做数据的热备3、架构的扩展。业务量越来越大,I/O访问频率过高,单机无法满足,此时做多库的存储,降低磁盘I/O访问的频率,提高单个机器的I/O性
分类:
数据库 时间:
2018-07-05 18:26:35
阅读次数:
217
一问题 需求是异步给 IM 发送link消息,所以有一张消息表,每次查询发送失败的数据,并对这些行数据加锁,(避免别的线程再次查询出来发送消息) 经过分析,发现原来是查出来发送失败的数据时候加锁失败,研究发现,原来 for update锁表必须开启事务,在begin与commit之间才生效。 二总结 ...
分类:
数据库 时间:
2018-07-04 22:48:55
阅读次数:
189
1.定义 重入锁ReentrantLock,支持重入的锁,表示一个线程对资源的重复加锁。 2.底层实现 每个锁关联一个线程持有者和计数器,当计数器为0时表示该锁没有被任何线程持有,那么任何线程都可能获得该锁而调用相应的方法;成功后,JVM会记下锁的持有线程,并且将计数器置为1;此时其它线程请求该锁, ...
分类:
编程语言 时间:
2018-06-29 20:39:28
阅读次数:
210
1.两种查询引擎查询速度(myIsam 引擎 ) InnoDB 中不保存表的具体行数,也就是说,执行select count(*) from table时,InnoDB要扫描一遍整个表来计算有多少行。 MyISAM只要简单的读出保存好的行数即可。 注意的是,当count(*)语句包含 where条件 ...
分类:
其他好文 时间:
2018-06-28 17:33:47
阅读次数:
205