- 博客(30)
- 收藏
- 关注
原创 SQL优化
一个表只能有一个聚集索引,比如表中的时间列。索引并不是越多越好,索引固然可以提高相应的 select 的效率,但同时也降低了 insert 及 update 的效率,因为 insert 或 update 时有可能会重建索引,所以怎样建索引需要慎重考虑,视具体情况而定。并不是所有索引对查询都有效,SQL是根据表中数据来进行查询优化的,当索引列有大量数据重复时,SQL查询可能不会去利用索引,如一表中有字段 sex,male、female几乎各一半,那么即使在sex上建了索引也对查询效率起不了作用。
2022-10-30 20:21:26
144
1
原创 html标签常用操作
base> 标签描述了基本的链接地址/链接目标,该标签作为HTML文档中所有的链接标签的默认链接,以及target(打开链接页面的跳转方式)_blank:重新打开一个页面;< head>标签包含了所有的头部元素,在里面可以用、、、META 元素通常用于指定网页的描述,关键词,文件的最后修改时间,作者,和其他元数据。div一般用于布局,换行,span一般用于在一行,用作文本的容器。span标签是一个行级元素,可用于文本的容器。
2022-08-24 14:25:47
162
原创 redis缓存穿透击穿雪崩
用户想要查询一个数据,缓存中没有,然后到数据库中去查,发现数据库中也没有,这个时候如果有人恶意发起大量的请求查询数据库中没有的数据,那么就会给数据库造成巨大的压力,这就是缓存穿透!有一个非常热点的key过期时间到了突然失效了,那么在这一瞬间所有的请求都落在这个点上,就会造成缓存的击穿,导致大量的请求落到数据库上。...
2022-08-18 12:18:47
214
原创 redis的事务和锁
很乐观,认为什么时候都不会出问题,只有更新的时候会去判断一下此期间是否有人更改过数据。更新时判断version是否和之前查的一致,一致就更新,不一致就不更新。当事务执行的过程中有其他的线程来修改了数据,那么就会撤销此次事务操作。很悲观,认为什么时候都会出现问题,无论干什么都要加锁。先查找数据库的version字段。2、命令入队(编写一些命令)1、开启事务multi。3、执行事务exec。...
2022-08-17 21:16:10
281
原创 MybatisPlus自动填充create_time和modified_time字段
然后需要自定义一个@Component,实现元数据处理器接口MetaObjectHandler,重写其中的方法。代码中,在实体类上加注解@TableField()添加自动填充的策略。在数据库中,修改表的结构,设置这两个字段的自动更新。...
2022-08-16 10:41:21
843
原创 连接mysql数据库时密码错误
第一步:修改/etc/my.cnf文件,在[mysqld]加入以下内容。第二步:重启mysql服务。第五步:删除第一步加入的。,重启mysql服务。
2022-08-14 14:42:46
1410
原创 mysql的卸载和安装
如果报错说密码的长度不符合要求,可以做以下调整。第二步:查看安装的mysql服务。第四步:查找关于mysql的文件。第一步:停止mysql的服务。第五步:删除my.cnf文件。第二步:查看日志找到登录密码。,不显示内容就是删干净了。第一步:启动mysql服务。第一步:安装wget工具。第六步:确认是否删干净。第三步:卸载这些服务。...
2022-08-14 12:28:15
193
原创 mysql的主从复制
mysql主从复制是一个异步的复制过程,底层是基于mysql数据库自大的二进制日志功能。就是一台或者多台mysql数据库(slave,即从库)从另外一台mysql数据库(master,即主库)进行日志的复制,然后再解析日志并进行数据的同步,从而实现从库和主库的数据保持一致。第一步:修改mysql的配置文件/etc/my.cnf,添加以下配置。第一步:修改mysql的配置文件/etc/my.cnf,添加以下配置。......
2022-08-14 10:46:21
198
原创 Redis的基本命令
//查询数据keys *(支持模糊查询)//写入set key value//读取get key//检查是否存在keyexists key//删除del key//批量写入mset key1 value1 key2 value2…//批量读取mget key1 key2 …//如果key存在就不写入setnx key value//存入带有过期时间的数据setex key time(int)(秒) value//自增incrby key int//写入lpush ke
2022-06-16 16:50:27
385
原创 哈希-算法题笔记
哈希两数之和数组中只出现一次的两个数三数之和两数之和给出一个整型数组 numbers 和一个目标值 target,请在数组中找出两个加起来等于目标值的数的下标,返回的下标按升序排列。(注:返回的数组下标从1开始算起,保证target一定可以由数组里面2个数字相加得到)要求:空间复杂度 O(n)O(n),时间复杂度 O(nlogn)O(nlogn)思路:计算target-numbers[i]的差是否包含在hashMap中,如果在就找到了这两个数,如果不在,就把当前的(numbers[i],i+1)存
2022-05-15 10:57:09
114
原创 java的IO流
字节流:字符流:注:FileReader继承自InputStreamReader,FileWriter继承自OutputStreamWriter当涉及到编码转换时,不能用FileReader和FileWriter
2022-05-13 11:54:52
110
原创 双指针总结
文章目录1.盛最多的水2.三数之和1.盛最多的水给定一个长度为 n 的整数数组 height 。有 n 条垂线,第 i 条线的两个端点是 (i, 0) 和 (i, height[i]) 。找出其中的两条线,使得它们与 x 轴共同构成的容器可以容纳最多的水。返回容器可以储存的最大水量。class Solution { public int maxArea(int[] height) { int maxArea=0;//最大面积 int tmp=0;//记录临
2022-05-13 11:20:26
310
原创 java集合框架
(https://img-blog.csdnimg.cn/4c93e070962749b89a11743f1038da40.jpg?x-oss-process=image/watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBA5aSp55Sf5YKy6aqo77yB,size_20,color_FFFFFF,t_70,g_se,x_16)
2022-05-13 11:10:18
148
原创 搜索算法BFS和DFS
搜索题解(BFS和DFS)A - 棋盘问题B - PerketC - 全排列D - 自然数拆分E - Prime Ring ProblemF - Red and BlackG - Knight MovesH - Oil DepositsI - Lake CountingJ - 二叉树先序遍历K - 迷宫(一)L - 马走日M - 八皇后问题N - 选数A - 棋盘问题在一个给定形状的棋盘(形状可能是不规则的)上面摆放棋子,棋子没有区别。要求摆放时任意的两个棋子不能放在棋盘中的同一行或者同一列,请编程求解
2022-01-14 17:51:27
388
原创 插值查找-算法笔记
插值查找:是在折半查找的基础上的优化,提高了查找的效率,折半查找中mid=(low+high)/2,而在插值查找中mid=low+(value-a[low])/(a[high]-a[low])*(high-low);#include<iostream>#include<bits/stdc++.h>#include<vector>using namespace std;//快速排序void qsort(int a[], int left, int rig
2021-05-20 21:49:27
61
原创 折半查找-算法笔记
折半查找:也即是二分查找,mid=(low+high)/2;如果value=a[mid],就找到了如果Value<a[mid],那么value在(low,mid-1)中,若value>a[mid],那么value在(mid+1,high)中#include<iostream>#include<bits/stdc++.h>#include<vector>using namespace std;//快速排序void qsort(int
2021-05-20 21:45:54
107
原创 堆排序-算法笔记
堆排序:构建一个完全二叉树,根据要求构建大顶堆或者小顶堆,交换第一个节点个最后一个节点,然后重新构建大顶堆或者小顶堆#include<iostream>#include<bits/stdc++.h>#include<vector>using namespace std;void swap(int a[], int i, int j) { int temp; temp = a[i]; a[i] = a[j]; a[j] = temp;.
2021-05-20 20:58:01
57
原创 2021-05-19
二路归并排序算法:利用分治思想 先把要排序的数组进行划分 像二分查找一样从中点处开始划分r=(p+q)/2;然后递归划分mergesort(a,p,r);mergesort(a,r+1,q);最后再递归合并注意:合并的时候要新建立两个辅助数组b[]和c[],然后把b和c中的元素按照要求的顺序重新写入a中具体过程:代码实现:#include<iostream>#include<bits/stdc++.h>#include<vector&g..
2021-05-19 21:21:39
48
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人