自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(22)
  • 收藏
  • 关注

原创 8. MySQL之Explain

8.1 简介使用EXPLAIN关键字可以模拟优化器执行SQL查询语句,从而知道MySQL是如何处理SQL语句的,分析查询语句或是表结构的性能瓶颈。8.2 各字段解释id*id作为select查询的序列号,包含一组数字,通常用来表示查询语句表的读取顺序三种情况id相同执行顺序从上到下id不同如果是子查询,id的序号会递增,id值越大优先级越高,越先被执行id相同与id不相同,同时存在衍生 = DERIVED在所有组中,id值越大,优先级越高,越先执行;id如果相同,

2020-10-31 12:34:45 326

原创 7. MySQL索引分类

7.1 单值索引即一个索引只包含单个列,一个表可以有多个单列索引7.2 唯一索引索引列的值必须唯一,但允许有空值7.3 主键索引设定为主键后数据库会自动建立索引,innodb为聚簇索引7.4 复合索引即一个索引包含多个列7.5 语法# 查看索引show index from table_name\G;# 删除索引drop index [indexName] on mytable;# 随表一起创建create table customer( ... key(

2020-10-26 21:05:17 100

原创 6. MySQL索引结构

6.1 简介索引(Index)是帮助MySQL高效获取数据的数据结构。也可以理解为排好序的快速查找数据结构6.1.2 分析以上图为例:左边是数据表,最左边的是数据记录的物理地址,为了加快Co2的查找,可以维护一个像右边所示的二叉查找树,每个节点分别包含索引键值和一个指向对应数据记录物理地址的指针,这样就可以运用二叉查找在一定的复杂度内获取到相应数据,从而快速的检索出符合条件的记录。6.1.3 优势类似大学图书馆建书目索引,提高数据检索的效率,降低数据库的IO成本通过索引列对数据进行排序

2020-10-25 22:51:33 255

原创 5. SQL回顾

5.1 Join5.2 SQL回顾#准备工作CREATE TABLE `t_dept` ( `id` INT(11) NOT NULL AUTO_INCREMENT, `deptName` VARCHAR(30) DEFAULT NULL, `address` VARCHAR(40) DEFAULT NULL, PRIMARY KEY (`id`)) ENGINE=INNODB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8; CREATE TABLE `t

2020-10-24 20:28:16 152

原创 4. MySQL存储引擎

4.1 查看命令 # 查看当前mysql提供的存储引擎:mysql> show engines;# 查看当前MySQL默认的存储引擎mysql> show variables like '%storage_engine%'4.2 引擎简介1、InnoDB存储引擎*InnoDB是MySQL的默认事务型引擎,它被设计用来处理大量的短期(short-lived)事务。除非有非常特别的原因需要使用其他的存储引擎,否则应该优先考虑InnoDB引擎。2、MyISAM存储引擎*MyI

2020-10-23 10:55:13 80

原创 3. MySQL杂项配置与底层架构

3.1 杂项配置3.1.1 sql_modesql_mode是个很容易被忽视的变量,默认是空值,在这种设置下是可以允许一些非法操作的,比如允许一些非法数据的插入。在生成环境下必须将这个值设置为严格模式,所以开发、测试环境的数据库也必须要设置。这样在开发测试阶段就可以发现问题。show varibles like 'sqlmode';3.2 底层架构3.2.1 利用show profile 查看sql的执行周期修改配置文件vim /etc/my.cnf,在最后加上中文字符集配置query

2020-10-22 16:35:04 129 1

原创 2. MySQL字符集、权限问题

2.1 MySQL5.7直接插入中文数据报错修改配置文件vim /etc/my.cnf,在最后加上中文字符集配置character_set_server=utf8重新启动mysql已生成的库表字符集需要修改数据库的字符集mysql> alter database mydb character set 'utf8';修改数据表的字符集mysql> alter table mytbl convert to character set 'utf8';2.2

2020-10-22 14:48:41 141

原创 1. Linux安装MySQL5.7.16

1.1 检查工作CentOS7,执行安装命令前,先执行查询命令rpm -qa|grep mariadb如果存在如下:需要先执行卸载命令:rpm -e --nodeps mariadb-libs检查当前mysql依赖环境rpm -qa|grep libaio如果存在libaio包如下:rpm -qa|grep net-tools如果存在net-tools包如下:如果不存在可以使用yum安装检查/tmp文件夹权限由于mysql安装过程中,会通过mysql用户在/tmp目

2020-10-18 22:36:09 279

原创 7. MyBatis-Plus代码自动生成器

7.1 简介AutoGenerator 是 MyBatis-Plus的代码生成器,通过 AutoGenerator 可以快速生成Entity、Mapper、Mapper XML、Service、Controller等各个模块的代码,极大的提升了开发效率。7.2 测试pom.xml <!-- MyBatis-Plus 从 3.0.3 之后移除了代码生成器与模板引擎的默认依赖,需要手动添加相关依赖 --> <dependency> <groupId>o

2020-10-18 12:33:18 125 1

原创 6. MyBatis-Plus条件构造器

6.1 Wrapper简介复杂的SQL,需要使用它来替代,涵盖了MyBatis中所有的SQL条件…等等6.2 测试@SpringBootTestpublic class WrapperTest { @Autowired private UserMapper userMapper; /** * 测试一:查询name不为空、邮箱不能为空、年龄大于等于21的用户 */ @Test void contextLoads() {

2020-10-17 22:37:24 258

原创 5. MyBatis-Plus性能分析插件

5.1 简介作用:性能分析拦截器,用于输出每条 SQL 语句及其执行时间MP提供的性能分析插件,如果超过这个时间就会停止运行5.2 使用导入插件public class MyBatisPlusConfig { /** * SQL执行效率插件 */ @Bean // 设置dev test环境开启,保证运行效率 @Profile({"dev","test"}) public PerformanceInterceptor testPer

2020-10-17 06:24:52 313

原创 4. MyBatis-Plus核心插件

4.1 插入 @Test public void testInsert(){ // id即使为空也会自动填写 System.out.println(userMapper.insert(new User(null, "qnu", 23, "[email protected]"))); }4.1.2 主键生成策略默认全局唯一id@TableId(type = IdType.ID_WORKER)分布式系统唯一id生成雪花算法*:snowflake是Twitter

2020-10-15 23:04:53 191 1

原创 3. Mybatis-Plus配置日志

在application.properties中添加此配置,即可知道sql是怎么执行的# 配置日志mybatis-plus.configuration.log-impl=org.apache.ibatis.logging.stdout.StdOutImpl

2020-10-15 05:57:29 318

原创 1. Mybatis-Plus快速入门

2.1 环境配置创建数据库mybatis_plus创建user表,并添加数据DROP TABLE IF EXISTS user;CREATE TABLE user( id BIGINT(20) NOT NULL COMMENT '主键ID', name VARCHAR(30) NULL DEFAULT NULL COMMENT '姓名', age INT(11) NULL DEFAULT NULL COMMENT '年龄', email VARCHAR(50

2020-10-15 05:52:05 147

原创 15. 缓存穿透与雪崩

15.1 缓存穿透15.1.1 概念缓存穿透的概念很简单,用户想要查询一个数据,发现redis内存数据没有,也就是缓存没有命中,于是向数据库查询,发现也没有,于是本次查询失败,当用户很多的时候,缓存都没有命中(例如秒杀),于是都去请求数据库,这会给数据库造成很大的压力,这就相当于缓存穿透15.1.2 解决方案布隆过滤器布隆过滤器是一种数据结构,对所有可能查询的参数以hash形式存储,在控制层先进行校验,不符合则丢弃,从而避免了对底层存储系统的查询压力当存储层不命中后,即使返回的空对象,也将其

2020-10-13 21:26:21 129

原创 14. Docker配置Redis哨兵模式

14.1 简介哨兵模式是一种特殊的模式,首先Redis提供了哨兵的命令,哨兵是一个独立的进程,作为进程,它会独立运行。其原理就是哨兵通过发送命令,等待Redis服务器响应,从而监控运行的多个Redis实例。也就是主从切换的升级版,能够后台监控主机是否故障,如果故障了则根据投票数自动将从库转换为主库这里的哨兵有两个作用:通过发送命令,让Redis服务器返回并监控其运行状态,包括主服务器和从服务器当哨兵检测到master宕机,会根据投票自动将slave切换成master,然后通过发布订阅模式通

2020-10-11 12:45:40 507

原创 13. Redis主从复制

13.1 简介主从复制,是指将一台Redis服务器的数据,复制到其他的Redis服务器。前者称为主节点(master/leader),后者称为从节点(slave/follower)数据的复制是单向的,只能由主节点到从节点。Master以写为主,Slave 以读为主。默认情况下,每台Redis服务器都是主节点,且一个主节点可以有多个从节点(或没有),但是一个从节点只能有一个主节点。主从复制的主要作用:数据冗余:主从复制实现了数据的热备份,是持久化之外的一种数据冗余方式故障恢复:当主节点出现问

2020-10-10 23:02:20 93

原创 12. Redis集群环境搭建

12.1 环境配置只配置从库,不用配置主库12.1.1 查看当前库的信息127.0.0.1:6379> info replication# Replication# 角色role:master# 没有从机connected_slaves:0master_replid:af727c02bc54cbd7403a8c0d239d7497821ed504master_replid2:0000000000000000000000000000000000000000master_repl

2020-10-07 21:56:16 465

原创 11. Redis发布订阅

11.1 简介Redis 发布订阅(pub/sub)是一种消息通信模式:发送者(pub)发送消息,订阅者(sub)接收消息。比如:微信、微博的关注系统!Redis 客户端可以订阅任意数量的频道。第一个:消息发送者, 第二个:频道 第三个:消息订阅者!下图展示了频道 channel1 , 以及订阅这个频道的三个客户端 —— client2 、 client5 和 client1 之间的关系:当有新消息通过 PUBLISH 命令发送给频道 channel1 时, 这个消息就会被发送给订阅它的三

2020-10-06 11:57:12 243

原创 10. Redis持久化之AOF

10. AOF(Append Only File)将所有的命令都记录下来,类似histrory的操作, 恢复的时候会将这个文件全执行一遍10.1 简介以日志的形式来记录每个写操作,将Redis执行过的所有指令记录下来(读操作不记录),只许追加文件但不可以改写文件,redis启动之初会读取该文件重新构建数据,换一种说法,redis重启的话,就是根据日志文件的内容,将写指令从前到后执行了一次,才完成了数据的恢复。10.2 配置AOF首先修改配置文件中的appendonly yes进入

2020-10-05 21:57:55 1553

原创 9. Redis持久化之RDB

9.1 简介Redis 是内存数据库,如果不将内存中的数据库状态保存到磁盘,那么一旦服务器进程退出,服务器中的数据库状态也会消失。所以 Redis 提供了持久化功能!9.2 RDB(Redis DataBase)在指定的时间间隔内将内存中的数据集快照写入磁盘,恢复时将快照文件直接读到内存里。Redis会单独创建(fork)一个子进程来进行持久化,会先将数据写入到一个临时文件中,等持久化过程都结束了,再用这个临时文件替换上次持久化好的文件,整个过程中,主进程是不进行任何IO操作的,这就确保了

2020-10-04 20:59:04 119

原创 8. Redis.conf

8.1 docker配置redis.confdocker在一开始运行的时候是没有配置文件的,需要手动挂载。# 1. 创建配置文件目录,这里使用/usr/local/redis mkdir -p /usr/local/redis# 2. 获取redis.conf配置文件,这里我使用第二种方式# 方式一:可以直接创建空redis.conf文件,将配置复制进去# 方式二:也可以下载redis,将redis.conf文件拷到之前配置的目录下,查看是否安装wget,没安装先安装,已安装跳过 yum

2020-10-03 17:38:31 149

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除