摘要: 1、myisam只支持表级锁 Innodb支持行级锁 2、myisam不支持事务 Innodb支持事务 3、myisam不支持外键 Innodb支持外键 4、myisam支持全文索引,Innodb不支持 5、myisam本身存储了表的总数据行,Innodb没有存储,查总行数myisam更快,如果加了 阅读全文
posted @ 2019-06-19 20:38 马崮蚂蚁哥 阅读(4250) 评论(0) 推荐(0) 编辑
摘要: 常用数据库的默认隔离级别 MySQL的默认隔离级别是Repeatable Oracle的默认隔离级别是Read committed 事务的隔离级别 1、未提交读(Read uncommitted) 2、提交读(Read committed) 3、可重复读(Repeatable reads) 4、可序 阅读全文
posted @ 2019-06-19 20:08 马崮蚂蚁哥 阅读(572) 评论(0) 推荐(0) 编辑
摘要: 在开发高并发系统时有三把利器用来保护系统:缓存、降级和限流 缓存的目的是提升系统访问速度和增大系统能处理的容量,可谓是抗高并发流量的银弹; 而降级是当服务出问题或者影响到核心流程的性能则需要暂时屏蔽掉,待高峰或者问题解决后再打开; 而有些场景并不能用缓存和降级来解决,比如稀缺资源(秒杀、抢购)、写服 阅读全文
posted @ 2019-06-19 18:03 马崮蚂蚁哥 阅读(267) 评论(0) 推荐(0) 编辑
摘要: 1、CopyOnWrite (1)、在写操作的线程,会将数组复制出来一份进行操作。而原本的数组不会做改变。 (2)读线程则不会受到影响,但是可能读到的是一个过期的数据。 在juc(java.util.concurrent)包下有着这么两个类,CopyOnWriteArrayList 和 CopyOn 阅读全文
posted @ 2019-06-19 16:01 马崮蚂蚁哥 阅读(108) 评论(0) 推荐(0) 编辑
摘要: 方法一:基于数据库生成 A库、B库、C库支持同时写入 A库初始值为1,自增为3,获取的值一次是1、4、7 B库初始值为2,自增为3,获取的值一次是2、5、8 C库初始值为3,自增为3,获取的值一次是6、6、9 获取ID时可从三库轮询获取 优点 此方法使用数据库原有的功能,所以相对简单 能够保证唯一性 阅读全文
posted @ 2019-06-19 14:22 马崮蚂蚁哥 阅读(942) 评论(0) 推荐(0) 编辑
摘要: rabbitmq如何保证消息的可靠性 1、保证消息不丢失 1.1、开启事务(不推荐) 1.2、开启confirm(推荐) 1.3、开启RabbitMQ的持久化(交换机、队列、消息) 1.4、关闭RabbitMQ的自动ack(改成手动) 2、保证消息不重复消费 2.1、幂等性(每个消息用一个唯一标识来 阅读全文
posted @ 2019-06-19 11:13 马崮蚂蚁哥 阅读(3506) 评论(0) 推荐(0) 编辑