数据结构与算法
MySQL查询慢,除了索引,还有什么原因?
一、先了解一下MySQL查询的执行过程
MySQL在查询时,它是由很多子任务组成的,每个子任务都会消耗一定的时间,如果要想优化查询,实际上要优化其子任务,可以消除一些子任务、减少子任务的执行次数、让子任务执行的更快。
MySQL查询的执行过程:从客户端到服务器、然后在服务器进行解析、生成执行计划、执行、返回结果给客户端。
执行是最重要的阶段,包括调用存储引擎检索数据、调用后的数据处理、排序、分组等
MySql数据库·建表三范式
一、建表时,表里建几个表头,表头叫什么名字,一般通过“ER关系模型” 来创建 (根据存储实体来创建)
ER关系模型.png
二、表创建的合理性,可以使用“建表范式”来进行衡量,一般分为3个等级:
1NF:表头下的数据不能再拆分
2NF:一张表里只存储一种数据信息 ,不能用一张存储多种数据息 并且要有主键
3NF:表中表头的数据,不能依赖其他表头的数据(例如:年龄、总金额、总成绩
MyBatis源码第一天
一、MyBatis解析全局配置文件
1.MyBatis介绍
MyBatis是一个持久层的ORM框架,使用简单,学习成本较低。可以执行自己手写的SQL语句,比较灵活。但是MyBatis的自动化程度不高,移植性也不高,有时从一个数据库迁移到另外一个数据库的时候需要自己修改配置,所以称只为半自动ORM框架。
2.传统JDBC和Mybatis相比的弊病
2.1传统JDC
传统JDBC的问题如
MySql数据库·字段高级约束
一、高级约束分为:
主键 (primary key)
表头值不允许重复,且不允许赋NULL值
表中只能有一个主键表头
通常把表中唯一标识记录的表头设置为主键[记录编号表头]
自增长(auto_increment)
插入记录时,如果不给表头赋值表头通过自加1的计算结果赋值
要想让表头有自增长 表头必须有主键设置才可以
自增长总是根据最后1条件记录表头的值+1结果赋值,除非通过truncate
DFS:floodfill算法解决矩阵联通块问题
floodfill,翻译为洪水灌溉,而floodfill算法本质上是为了解决在矩阵中性质相同的联通块问题。一、图像渲染. - 力扣(LeetCode)class Solution {
public:
int dx[4]={0,0,1,-1};
int dy[4]={1,-1,0,0};
int prev;/
dfs记忆化搜索刷题 + 总结
文章目录
记忆化搜索 vs 动态规划
斐波那契数
题解
代码
不同路径
题解
代码
最长递增子序列
题解
代码
猜数字大小II
题解
代码
矩阵中的最长递增路径
题解
代码
总结
记忆化搜索 vs 动态规划
1. 记忆化搜索:有完全相同的问题/数据保存起来,带有备忘录的递归 2.
【数据结构和算法】种花问题
其他系列文章导航
Java基础合集数据结构与算法合集
设计模式合集
多线程合集
分布式合集
ES合集
文章目录其他系列文章导航文章目录前言一、题目描述二、题解2.1 方法一:贪心2.2 贪心算法一般思路三、代码3.1 方法一:贪心四、复杂度分析4.1 方法一:贪心
前言这是力扣的 605 题