
数据库
文章平均质量分 84
qxhly
但行善事,莫问前程
展开
-
Mybatis-缓存
一级缓存一级缓存介绍在应用运行过程中,我们有可能在一次数据库会话中,执行多次查询条件完全相同的SQL,MyBatis提供了一级缓存的方案优化这部分场景,如果是相同的SQL语句,会优先命中一级缓存,避免直接对数据库进行查询,提高性能。具体执行过程如下图所示每个SqlSession中持有了Executor,每个Executor中有一个LocalCache。当用户发起查询时,MyBatis根据当前执行的语句生成MappedStatement,在Local Cache进行查询,如果缓存命中的话,直接返回结果转载 2021-09-06 17:27:54 · 277 阅读 · 0 评论 -
Mybatis- 应用
主键返回通常我们会将数据库表的主键id设为自增。在插入一条记录时,我们不设置其主键id,而让数据库自动生成该条记录的主键id,那么在插入一条记录后,如何得到数据库自动生成的这条记录的主键id呢?有两种方式使用useGeneratedKeys和keyProperty属性<insert id="insert" parameterType="com.yogurt.po.Student" useGeneratedKeys="true" keyProperty="id"> INSERT转载 2021-09-04 11:17:06 · 284 阅读 · 0 评论 -
Mybatis-基础入门
概述Mybatis是一款半自动的ORM持久层框架,具有较高的SQL灵活性,支持高级映射(一对一,一对多),动态SQL,延迟加载和缓存等特性,但它的数据库无关性较低什么是ORMObject Relation Mapping,对象关系映射。对象指的是Java对象,关系指的是数据库中的关系模型,对象关系映射,指的就是在Java对象和数据库的关系模型之间建立一种对应关系,比如用一个Java的Student类,去对应数据库中的一张student表,类中的属性和表中的列一一对应。Student类就对应studen转载 2021-09-04 09:57:35 · 219 阅读 · 0 评论 -
MySQL分库分表
数据库瓶颈不管是IO瓶颈,还是CPU瓶颈,最终都会导致数据库的活跃连接数增加,进而逼近甚至达到数据库可承载活跃连接数的阈值。在业务Service来看就是,可用数据库连接少甚至无连接可用IO瓶颈磁盘读IO瓶颈,热点数据太多,数据库缓存放不下,每次查询时会产生大量的IO,降低查询速度 -> 分库和垂直分表第二种:网络IO瓶颈,请求的数据太多,网络带宽不够 -> 分库CPU瓶颈第一种:SQL问题,如SQL中包含join,group by,order by,非索引字段条件查询等,增加C转载 2021-08-21 13:28:01 · 138 阅读 · 0 评论 -
SQL题目
create table student( id int(11) not null primary key auto_increment, name varchar(16) not null, age int(11), sex varchar(1));alter table student modify column sex varchar(1) comment '1=男,0=女';insert into studentvalues (1,原创 2021-08-20 17:03:53 · 242 阅读 · 0 评论 -
MySQL主从复制
概述随着业务的增长,一台数据服务器已经满足不了需求了,负载过重。这个时候就需要减压了,实现负载均衡读写分离,一主一丛或一主多从。主服务器只负责写,而从服务器只负责读,从而提高了效率减轻压力。主从复制可以分为:主从同步:当用户写数据主服务器必须和从服务器同步了才告诉用户写入成功,等待时间比较长。主从异步:只要用户访问写数据主服务器,立即返回给用户主从半同步:当用户访问写数据主服务器写入并同步其中一个从服务器就返回给用户成功。形式一主一从一主多从一主一从和一主多从是我们现在见的最转载 2021-08-20 15:06:27 · 172 阅读 · 0 评论 -
MySQL-索引
索引概念索引是一种用于快速查询和检索数据的数据结构。常见的索引结构有: B 树, B+树和 Hash一般来说索引本身也很大,不可能全部存储在内存中,因此索引往往是存储在磁盘上的文件中的(可能存储在单独的索引文件中,也可能和数据一起存储在数据文件中)。索引的优势和劣势优势可以提高数据检索的效率,降低数据库的IO成本,类似于书的目录。通过索引列对数据进行排序,降低数据排序的成本,降低了CPU的消耗。被索引的列会自动进行排序,包括【单列索引】和【组合索引】,只是组合索引的排序要复杂一些如果按照转载 2021-08-17 17:54:41 · 132 阅读 · 0 评论 -
MySQL-事务
什么是事务事务(Transaction)是访问和更新数据库的程序执行单元;事务中可能包含一个或多个sql语句,这些语句要么都执行成功,要么全部执行失败。事务的四大特性(ACID)原子性(Atomicity,或称不可分割性)一个事务必须被视为一个不可分割的最小工作单元,整个事务中所有的操作要么全部提交成功,要么全部失败回滚,对于一个事务来说,不可能只执行其中的一部分操作,这就是事务的原子性一致性(Consistency)数据库总是从一个一致性的状态转换到另外一个一致性的状态,在事务开始之前和之后转载 2021-08-16 20:52:13 · 637 阅读 · 0 评论 -
MySQL- 架构
创建带有编码的:create database 库名 character set 编码 查看数据库编码:show create database 库名 查看正在使用的库:select database(); 修改表名:rename table 旧表名 to 新表名; 插入数据中文乱码解决方法: set names gbk;说说delete与truncate的区别? delete删除的原创 2017-12-10 20:30:15 · 165 阅读 · 0 评论 -
MySQL基础
创建数据库和表:/* 创建数据库 create database 数据库名;*/CREATE DATABASE mydatabase;/* 使用数据库 Use 数据库名;*/USE mydatabase;/* 创建数据表的格式 create table 表名( 列名1 数据类型 约束, 列名2 数据类型 约束, );原创 2017-11-04 11:17:12 · 211 阅读 · 0 评论 -
数据库基本概念
概念元组 : 元组(tuple)是关系数据库中的基本概念,关系是一张表,表中的每行(即数据库中的每条记录)就是一个元组,每列就是一个属性。 在二维表里,元组也称为行。码 :码就是能唯一标识实体的属性,对应表中的列。候选码 : 若关系中的某一属性或属性组的值能唯一的标识一个元组,而其任何、子集都不能再标识,则称该属性组为候选码。例如:在学生实体中,“学号”是能唯一的区分学生实体的,同时又假设“姓名”、“班级”的属性组合足以区分学生实体,那么{学号}和{姓名,班级}都是候选码。主码 : 主码也叫主键。原创 2021-08-16 11:01:03 · 722 阅读 · 0 评论 -
存储过程(procedure)和函数(function)
存储过程定义存储过程时一组为了完成特定功能的sql语句,编译后存储在数据库中案例打印 hello worldcreate or replace procedure test_procedure1 asbegin dbms_output.put_line('hello world');end;-- test_procedure1存储过程名-- 存储过程和函数中 as和is效...原创 2019-09-11 16:01:12 · 21421 阅读 · 0 评论