目录

chen 的个人博客

VX:TiAmo151028
Phone:13403656751
Email:zxydczzs@gmail.com

标签: mysql (2)

悲观锁、乐观锁、自旋锁、读写锁、共享锁、排它锁、统一锁、分段锁。 有更新!

悲观锁 1、定义 具有强烈的独占和排它特性,它指的是对数据被外界(包括本系统当前的其他食物,以及来自外部系统的事务处理)修改持保守态度,因此,在整个数据处理过程中,将数据处于锁定状态。 2、Java 悲观锁实现之 synchronized synchronized 就是典型的悲观锁,相当于不管哪一个线程(例如线程 A),运行到这个方法时,都要检查有没有其他线程 B 或者 C、D 等正在用这个方法(或者该类的其他同步方法),有的话要等正在使用 synchronized 方法的线程 B 或者 C、D 运行完这个方法后再运行此线程 A,没有的话,锁定调用者,然后直接运行。 补充 1/** 2 * @author ZhangXiaoYu 3 * @date 2021/5/13 9:25 4 */ 5public class Thumbnail { 6 Object obj = new Object(); 7 //synchronized修饰普通方法,锁对象是this对象。 8 public synchronized void test(){ 9 10 } 11 12 //sy....

尝试一下mysql索引优化!!! 有更新!

最近看了不少的 MySQL 调优,其中提到了索引,现在来尝尝鲜。 这是一个 10W+ 数据的表,没有带任何索引的时候去精准查询 name,它的执行时间为 11.122s,很慢 运行的 SQL 语句为: 1select * from book_chapter where chapter_name = '第两千五百三十六章 玄雷之命(终章)'; 这个时候它的执行计划是 ALL,也就是全表扫描。 然后尝试给这个字段加索引 使用命令 1alter table book_chapter add index chapter_name(chapter_name); 加完索引咱们再次尝试。执行时间为 0.139s。这里貌似触发了回表操作,可以知道我这个版本的 MySQL 默认存储引擎为 innodb,底层数据结构为 B+ 树,而 MySQL 一个索引就是一颗 B+ 树,默认主键就是一个索引,也就是一棵树,而 chapter_name 为另一颗 B+ 树,innodb 在存储数据和索引的时候,只有一颗 B+ 树存储的是主键 + 数据,而 chapter_name 这颗 B+ 树存储的是主键 ID....