1、示例 使用explain语句可以分析查询语句 eg:explain select * from org_user t1 left join org_relation t2 on t2.user_id_ = t1.id_ left join org_group t3 on t2.group_id_ = t3.id_ 这个语句会产生如下信息 再来一个使用union的sql eg: EXPLAIN SELECT * FROM ( ( SELECT * FROM org_relation LIMIT 11 ) UNION ( SELECT * FROM org_relation LIMIT 1 ) ) a 产生如下信息 2、结果分析 2.1、id id是select的查询序列号 2.2 、select_type select_type表示select语句的类型(dependent表示一个依赖关系,例如一个查询对子查询语句做了筛选操作,则子查询就依赖与外面的sql,子查询最终结果取决于外面的sql语句) simple表示一个不包含连接和子查询的查询 primary表示主查询(最外层的.... 有更新! mysql explain命令分析sql语句性能 程序人生
使用llike查询的时候,%在第一个位置,索引失效 or条件,索引并列,两个字段都是索引字段,才会生效 MySQL一个索引可以包含多个字段,对于多列索引,只有使用了这些字段中的第一个字段时,索引才会生效 后面遇到的再添加 有更新! mysql索引失效 程序人生
基本流程示意图 spring boot security默认的登录流程如下所示,弄懂登陆的流程,有助于我们后面扩展框架,解决遇到的问题 UsernamePasswordAuthenticationFilter过滤器过滤请求 调用ProviderManager认证 获取了authenticationManager处理登录,AuthenticationManager接口有多个实现类,默认调用了ProviderManager providerManager中管理了多个认证适配器,调用对应的适配器进行认证 进入DaoAuthenticationProvider进行认证 DaoAuthenticationProvider继承了AbstractUserDetailsAuthenticationProvider类,这个类又实现了AuthenticationProvider接口,这个接口中的supports方法就是上文用来匹配适配器的方法,继承这个接口,实现这个方法,就可以自定义适配器 调用InMemoryUserDetailsManager查询用户信息 DaoAuthentication.... 有更新! spring security认证流程 程序人生
1、安装gcc yum install gcc-c++ -y 2、redis下载解压 wget http://download.redis.io/releases/redis-5.0.8.tar.gz tar xzf redis-5.0.8.tar.gz cd redis-5.0.8 3、编译 make 4、启动 进入src目录,运行redis-serve即可 有更新! centos安装redis 程序人生
1、定义类注解和方法注解 @Target(ElementType.TYPE) @Retention(RetentionPolicy.RUNTIME) @Documented public @interface TypeAnnotation { String value() default "这是类注解"; } @Target(ElementType.METHOD) @Retention(RetentionPolicy.RUNTIME) @Documented public @interface MethodAnnotation { String value() default "这是方法注解"; } 2、处理注解 此处通过反射拿到类对象,获取注解,来操作。 再生产中也可以结合切面编程来处理注解,或者扫描指定包下的所有类,遍历处理注解 public class AnnotationHandler { public static void main(String[] args){ //可以配置扫描路径加载所有class,也可以使用aspectj直接做前面处理 Class aClass .... 有更新! 自己定义一个注解 程序人生
1、查看开启的端口 firewall-cmd --list-port 2、开启一个端口 firewall-cmd --zone=public --add-port=8080/tcp --permanent 3、关闭一个端口 firewall-cmd --zone=public --remove-port=8080/tcp --permanent 4、重启防火墙 firewall-cmd --reload 5、开启、关闭防火墙 systemctl start firewalld systemctl stop firewalld 有更新! centos开启防火墙端口 服务器