目录

chen 的个人博客

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

尝试一下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....

volatile关键字与内存可见性 有更新!

1package com.zxy.demo.thread; 2 3import lombok.Data; 4 5/** 6 * @author ZhangXiaoYu 7 * @date 2021/9/2 9:26 8 */ 9public class ThreadDemo1 { 10 //volatile关键字与内存可见性 11 /* 12 * new一个线程子类实例并start,线程内部睡眠200毫秒后将flag设置为true 13 * 主线程使用while循环,如果线程子类的成员变量flag为true时,输出一句话后break出循环。 14 * 问题1:在主线程while循环时,flag已经为true,却没有跳出循环,为什么? 15 * 这是内存可见性的问题。当多个线程操作共享数据时,彼此不可见。 16 * 基本可以理解为,ThreadDemo线程先从主存中把数据读取过来,读取到的是false,然后修改为true,就在还未来得及把true同步到主存 17 * 时,main进来了,这是main读取到的还是false,所以形成死循环,就在main循环时,ThreadD....

int和Integer的区别以及自动装箱\拆箱机制 有更新!

Java 是一个近乎纯洁的面向对象编程语言,但是为了编程的方便还是引入了基本数据类型,但是为了能够将这些基本数据类型当成对象操作,Java 为每一个基本数据类型都引入了对应的包装类型(wrapper class),int 的包装类就是 Integer,从 Java 5 开始引入了自动装箱/拆箱机制,使得二者可以相互转换。 Java 为每个原始类型提供了包装类型: 原始类型: boolean,char,byte,short,int,long,float,double 包装类型:Boolean,Character,Byte,Short,Integer,Long,Float,Double 测试用例: 1/** 2 * @author ZhangXiaoYu 3 * @date 2021/8/31 14:29 4 */ 5public class AutoUnboxingTest { 6 public static void main(String[] args) { 7 Integer a = new Integer(3); 8 Integer b = 3; 9 int....

JQuery制作窗帘打开、暂停以及关闭的动画效果 有更新!

先看效果图 实现 利用 jQuery 的 animate 实现动画效果,设置 CSS 的宽度使其在规定时间内完成。 直接把项目打包放在这里,按需下载。 TestJQuery.rar 这个页面是 index.html