- 博客(21)
- 收藏
- 关注
原创 MySQL架构以及日志
MySQL架构以及日志 1.架构图 简化版本: 2.基本简介 1.连接器(Connectors) 管理连接,权限验证。 主要负责客户端和数据库之间的连接工作。比如常见的JDBC可以通过url,username,password与数据库创建连接。可以通过 show processlist; 查看当前的连接。 2.分析器(Parser) 词法分析,语法分析。 MySQL需要把输入的字符串进行切分,通过词法分别进行识别。还会根据语法规则判断sql是否满足mysql语法,不符合会报错:“You have an
2020-09-29 15:55:30
234
原创 MySQL索引学习
索引学习 1.什么是索引 索引是帮助MySQL搞笑获取数据的数据结构,即排好序的快速查找数据结构。 2.索引的优劣势 优点: 提高数据检索的效率,降低数据库的IO成本。 通过索引列对数据进行排序,降低数据排序的成本,降低了CPU的消耗。 缺点: 索引存放在磁盘中,也要占用空间。 降低了更新表的速度,因为在MySQL数据更改的时候,索引文件也要发生调整。 3.索引类型 普通索引:基本的索引类型,值可以为空,没有唯一性限制。 唯一索引:索引列的值必须唯一,允许有空值。 主键索引:一种唯一性索引,必须指
2020-09-28 17:38:22
179
原创 MySQL索引数据结构的选择
MySQL索引数据结构的选择 1.二叉树及其衍生树 各种树形:多叉树----->二叉树----->平衡树(AVL树)----->红黑树 对于二叉树来说,会存在一种偏向的情况,如下图,使得效率和遍历查找相同。 平衡树:AVL树是一颗严格意义上的平衡树,最高子树跟最低子树高度之差不能超过1,因此在进行元素插入的时候,会进行1到N此的旋转,严重影响插入的性能。 红黑树:红黑树是基于AVL树的升级,损失部分查询的性能,来提高插入的性能,在红黑树中最低子树和最高子树之差小于2倍即可,在插入的时候,
2020-09-28 17:35:45
411
原创 MySQL存储引擎InnoDB与MyISAM比较
MySQL存储引擎InnoDB与MyISAM比较 1.文件存储形式 InnoDB和MyISAM都存储在磁盘上,但是有着不同的文件格式。 InnoDB: .frm:存放的是表结构 .ibd:存放数据文件和索引文件,使用的是B+Tree组织的一个索引结构文件 MyISAM: .frm存放表结构 .MYI:存放索引数据 .MYD:存放实际数据 2.各种类型上的对比 2.B+树数据结构 对于InnoDB存储引擎来说,其叶子结点直接存放的是数据 注意: InnoDB是通过B+树结构对主键创建索引的,然后叶子结
2020-09-28 17:32:40
195
原创 SpringMVC中REST简单学习
SpringMVC中REST简单学习 可以解决不只会发送post或者get请求,也会发送put和delete请求。 1.依赖管理 <?xml version="1.0" encoding="UTF-8"?> <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="
2020-07-28 14:42:16
157
原创 SSM整合流程学习
SSM整合流程学习 整体项目结构 1.导入相关依赖 <?xml version="1.0" encoding="UTF-8"?> <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http
2020-07-28 14:38:03
197
原创 Mybatis的基本CRUD操作流程
Mybatis的基本CRUD操作流程 1.导包 导入mybatis包和mysql包以及junit测试包 <dependencies> <!-- https://mvnrepository.com/artifact/org.mybatis/mybatis --> <dependency> <groupId>org.mybatis</groupId> <artifac
2020-07-26 21:11:03
291
原创 SpringMVC基本流程学习
1.创建项目 创建Maven项目名为springmvc_helloworld web支持可以在创建项目时创建; 也可以在项目创建之后添加。 2.使用Maven导包 主要导入Spring-web和Spring-webmvc依赖,Spring-context包在前两个依赖创建后已经生成。 3.配置web.xml文件 进行前端控制器DispatcherServlet的配置,以及前端控制器对应的映射配置。 4.创建实例 在com.ls.controller包下创建HelloController类。 5.创
2020-07-03 20:28:38
250
原创 抽象类与接口的区别
抽象类与接口的区别 1.抽象类使用abstract关键字修饰;接口使用interface关键字修饰。 2.子类使用extends继承抽象类;使用implements实现接口。 3.抽象类中可以有抽象方法和普通方法;接口中只能包含抽象方法。 4.子类继承抽象类后必须实现抽象方法,普通方法可以不重写;接口必须实现所有方法。 5.抽象类在子类继承时是单继承的;接口可以多实现。 6.抽象类和接口都不能实例化(即不能通过new来创建实例)。但是抽象类中可以有构造方法;接口没有。 7.抽象类中可以定义成员变量;接口只能
2020-06-27 21:01:23
151
原创 Java static关键字学习
Static关键字 在类中,用static修饰的成员变量叫静态成员变量,也叫类属性、类变量。它是该类的公用变量,属于类,被该类的所有实例共享使用。静态变量在创建对象前被初始化(在类被载入之前初始化): 普通变量在使用时,需要通过对象名.调用;放在队中。 静态变量在使用时,可以通过对象名.调用,也可以通过类名.调用;放在方法区中。 再修饰方法的时候,表示静态方法或者叫类方法: 普通方法在使用时,需要通过对象名.调用。 静态方法在使用时,可以通过对象名.调用,也可以通过类名.调用。 注意: 1.静态变量不能定义
2020-06-27 19:52:14
113
原创 Mysql的锁机制的简单学习
Mysql的锁机制 在Mysql中,不同的存储引擎支持不同的锁机制。比如,MyISAM和MEMORY存储引擎采用的是表级锁(table-level locking);InnoDB存储引擎既支持行级锁(row-level locking),也支持表级锁,但默认情况下是采用行级锁。 **表级锁:**开销小,加锁快;不会出现死锁;锁定粒度大,发生锁冲突的概率最高,并发度最低。 **行级锁:**开销大,加...
2019-12-17 19:43:36
163
原创 数据库级别的事务的学习
数据库级别的事务的学习 一、事务四大特征 原子性,一致性,隔离性和持久性。 1. 原子性(Atomicity) 一个原子事务要么完整执行,要么干脆不执行。这意味着,工作单元中的每项任务都必须正确执行。如果有任一任务执行失败,则整个工作单元或事务就会被终止。即此前对数据所作的任何修改都将被撤销。如果所有任务都被成功执行,事务就会被提交,即对数据所作的修改将会是永久性的。 2. 一致性(Consist...
2019-12-02 19:10:05
161
原创 常用Sql语句学习总结
Sql语句学习总结用于以后复习查看 DQL:数据查询语言,用于对数据进行查询,如select DML:数据操作语言,对数据进行增加、修改、删除,如insert、udpate、delete DDL:数据定义语言,进行数据库、表的管理等,如create、drop TPL:事务处理语言,对事务进行处理,包括begin transaction、commit、rollback (基于Oracle中的emp,...
2019-11-28 20:58:39
722
原创 Linux下的Mysql5.7安装(yum方法)及卸载
目录 : Linux下的Mysql5.7详细安装: 0、更换yum源 1、打开 mirrors.aliyun.com,选择centos的系统,点击帮助 2、执行命令: yum install wget -y 3、改变某些文件的名称 mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.backup 4、执...
2019-11-24 19:26:50
582
原创 多线程的常用的几种方法学习
1. public static Thread currentThread() 返回目前正在执行的线程 2. public final String getName() 返回线程的名称 3. public final int getPriority() 返回线程的优先级 4. public final void setPriority(String name) 设定线程名称 5. public f...
2019-11-18 20:11:41
195
原创 使用RandomAccessFile完成对文件的切分
要求:将一个文件中的内容切分,并显示切分多少块及每块的内容。 代码如下: public class RandomAccessFileTest { public static void main(String[] args) { //doc.txt文件内容随机 File file = new File("doc.txt"); //整个文件的大小 ...
2019-11-15 20:42:53
269
原创 String截取字符串的HashMap练习题
题目: 假如有以下email数据“[email protected],[email protected],[email protected],…”,现需要把 email中的用户部分和邮件地址部分分离,分离后以键值对应的方式放入HashMap 代码如下: public class EmailTest { public static void main(String[] args) { String email = “[email protected]...
2019-11-04 18:33:30
789
原创 Oracle一道题实现四种行转列的形式
题目需求的表数据 create table STUDENT_SCORE ( name VARCHAR2(20), subject VARCHAR2(20), score NUMBER(4,1) ); insert into student_score (NAME, SUBJECT, SCORE) values (‘张三’, ‘语文’, 78.0); insert into student...
2019-11-03 19:35:39
258
原创 Java实现四种9*9乘法表
代码如下: public class ManyFor{ public static void main(String args[]){ //打印九九乘法表 System.out.println("左下角"); for(int i = 1;i<10;i++){ for(int j = 1;j<=i;j++){ System.out.print(j+"*"+i+"="+i*j...
2019-11-01 19:53:22
2074
1
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人