
数据库
运猫
唯一能够阻止你前进的人就是你自己。
展开
-
关于ManyToOne、ManyToMany、OneToOne所对应的表
ManyToOne扩展表ManyToMany中间表OneToOne外联表原创 2017-08-26 22:57:46 · 719 阅读 · 0 评论 -
关于Spring Data Jpa的分页、跨表查询
jqa的query使用原生sql查询(nativeQuery = true)的时候不支持排序的,需要在sql里面加上:ORDER BY ?#{#pageable} Spring Data Jpa本地查询(带分页方式)Example@Query(value = "select u.* from user u INNER JOIN project_user pu " + ...原创 2018-07-27 15:23:45 · 2609 阅读 · 2 评论 -
spring事务传播属性和隔离
REQUIRES_NEW 和NESTED 的区别 REQUIRES_NEW时,内层事务与外层事务就像两个独立的事务一样,一旦内层事务进行了提交后,外层事务不能对其进行回滚。两个事务互不影响。两个事务不是一个真正的嵌套事务。NESTED时,外层事务的回滚可以引起内层事务的回滚,而内层事务的异常通过对savepoint的回滚,将外层事务的状态点回滚到初始,它是一个真正的嵌套事务。 例如: ...原创 2018-08-06 14:37:29 · 273 阅读 · 0 评论 -
Flyway
Flyway不是像canal那样,通过对binlog监控这种“底层”操作来进行同步,而是通过对各种SQL脚本、java操作等“上层”操作来实施同步。快速掌握和使用Flyway 官方...原创 2018-08-10 22:22:17 · 1005 阅读 · 0 评论 -
MySQL InnoDB锁
行锁InnoDB的行锁是实现在索引上的,而不是锁在物理行记录上。潜台词是,如果访问没有命中索引,也无法使用行锁,将要退化为表锁。 ref:InnoDB,5项最佳实践,知其所以然?共享锁 SELECT … LOCK IN SHARE MODE走的是IS锁(意向共享锁),即在符合条件的rows上都加了共享锁,这样的话,其他人可以读取这些记录,也可以继续添加IS锁,但是无法修改这些记...原创 2018-08-11 18:12:09 · 515 阅读 · 0 评论 -
MySQL InnoDB锁 实战解读
创建测试表-- ------------------------------ Table structure for tb2-- ----------------------------DROP TABLE IF EXISTS `tb2`;CREATE TABLE `tb2` ( `id` int(11) NOT NULL, `c` int(11) NULL DEFAUL...原创 2018-08-12 23:19:32 · 1563 阅读 · 0 评论 -
MYSQL Deadlock问题
可以参考这篇文章进行排查: MYSQL:1213 Deadlock问题排查历程解决方案 减小事务中的语句数量(代码的事务涉及行数过多,锁范围太大,很容易造成死锁) 在业务中调整语句的执行顺序,例如可以按照where条件中字段的大小进行一下排序,按照排序后顺序执行,让死锁变为锁等待。 也可以采用重试机制: @Retryable(maxAttempts = 4...原创 2018-08-08 18:17:24 · 1889 阅读 · 0 评论