数据结构与算法

mybaits-plus优雅的实现数据权限

前言 项目使用mybaits-plus,所以在mybaits-plus的基础上增加数据权限的过滤 mybaits-plus自带数据权限支持,但由于系统数据权限相对复杂,通过查看文档发现好像并不适用,且原项目版本低,所以最终还是通过自己的方式实现 数据范围 我们系统相对复杂,比如可以按机构/用户等多种维度过滤,并且可以指定全局和某个特定接口的过滤方式 其实数据范围过滤落地也不过是:数据表的某字段限制

MySql普通索引的管理

一、普通索引的使用规则: 一个表中可以有多个index 字段的值可以重复,且可以赋值为null 通常在where条件中的字段上配置Index index索引字段的标志为MUL 二、普通索引的语法结构: 添加索引(新表) CREATE TABLE 库.表( 字段列表 , INDEX(字段名) , INDEX(字段名) ); 添加索引(旧表) CREATE INDEX 索引名 ON 库.

MySQL 查询优化(十):冷门知识—— MySQL自定义变量

MySQL 是可以自定义临时变量的,而临时变量在做查询优化和静态查询分析时十分有用。而实际上很少有人记得 MySQL 的自定义变量。本篇文章讲述 MySQL 的自定义变量的概念及特点。 MySQL 的自定义 就是存储值的临时容器,只要与服务端的连接是活跃的,容器中的值可以保存和使用。可以通过简单的 SET 或 SELECT语句 设置自定义变量,如下所示: SET @one := 1; SET

21个MySQL表设计的经验准则

1.命名规范 数据库表名、字段名、索引名等都需要命名规范,可读性高(一般要求用英文),让别人一看命名,就知道这个字段表示什么意思。 比如一个表的账号字段,反例如下: acc_no,1_acc_no,zhanghao 正例: account_no,account_number 表名、字段名必须使用小写字母或者数字,禁止使用数字开头,禁止使用拼音,并且一般不使用英文缩写。 主键索引名为pk_字段

sql优化的N种方法

1.SQL语句中IN包含的值不应过多: 例如:select id from t where num in(1,2,3) 对于连续的数值,能用between就不要用in了; 实测速度差距不是很大. image.png 2.SELECT语句务必指明字段名称: 禁止用 * 来查询 ,禁止用 * 来查询 ,禁止用 * 来查询 , 查找哪个字段,就写具体的字段. select * from

MySQL 应用简单说明

1. 文档说明 这里的文档说的是官方的文档,可以在 中找到(以mysql5.7为例) 可以点击右方的按钮进行选择下载相应的文档文件。 2. CentOS7安装MySQL 这里指完全按照上面的文档说明进行安装的方式。 (注:下面的指令都默认使用root账号操作,如果非root 账号,请在前面加上sudo) 下载 相关的 r

必学算法——贪心

目录 前言 一、什么是贪心算法 二、算法原理 三、贪心算法的基本步骤 四、贪心算法的特点 五、优缺点分析 六、适用条件 七、经典应用 七、实例分析 八、经典例题 1.翻硬币 代码题解 2.一键三连 代码题解 3.分开元音字母 九、结语 前言贪心算法是必须掌握的一种基础算法,在一些比较出名的竞赛acm、蓝桥杯,并且在

where 1=1 是什么意思???

where 1=1 先来看一段代码 <select id="queryBookInfo" parameterType="com.ths.platform.entity.BookInfo" resultType="java.lang.Integer"> select count(id) from t_book t where 1=1 <if test="tit

SpringBoot整合SpringSecurity

先说一下SpringSecurity是干什么的,SpringSecurity主要作用有2方面:认证、授权。 认证:Authentication, 用户认证就是判断一个用户的身份是否合法的过程,用户去访问系统资源时系统要求验证用户的身份信息,身份合法方可继续访问,不合法则拒绝访问。常见的用户身份认证方式有:用户名密码登录,二维码登录,手机短信登录,指纹认证等方式。 授权: Authorize,授权