mysql索引失效
使用llike查询的时候,%在第一个位置,索引失效 or条件,索引并列,两个字段都是索引字段,才会生效 MySQL一个索引可以包含多个字段,对于多列索引,只有使用了这些字段中的第一个字段时,索引才会生效 后面遇到的再添加
使用llike查询的时候,%在第一个位置,索引失效 or条件,索引并列,两个字段都是索引字段,才会生效 MySQL一个索引可以包含多个字段,对于多列索引,只有使用了这些字段中的第一个字段时,索引才会生效 后面遇到的再添加
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表示主查询(最外层的查询)....
1、查看连接次数 show STATUS like 'Connections'; 2、查看mysql服务器的上线时间 show STATUS like 'Uptime'; 3、慢查询的次数 show STATUS like 'Slow_queries'; 4、查询操作的次数 show STATUS like 'Com_select'; 5、插入操作的次数 show STATUS like 'Com_insert'; 6、更新操作的次数 show STATUS like 'Com_update'; 7、更新操作的次数 show STATUS like 'Com_delete';
临界资源需要保持他的唯一性,再代码中,可以通过单例模式来实现(这里是典型的生产者/消费者问题) 构造方法中,用synchronized来做同步处理,为了避免每次进来都要给代码加锁影响性能,先在外层套if做判断 这里的connectionMap就是一个临界资源,代码初始化创建了8个数据库链接,放在map里面,然后多线程来获取调用这些connection 为了保证临界资源的安全,对获取链接和放回链接做了一个枷锁的处理,建立一个ReentrantLock锁,然后获取两个条件,获取连接的时候,判断是否有链接,有就继续,放回链接的时候,判断链接池是否已经满了,没满就放回 package cn.com.enersun.datahub.powerevent.consumer.database; import java.sql.Connection; import java.util.HashMap; import java.util.LinkedList; import java.util.Map; import java.util.concurrent.locks.Condition; impor....
1.后台运行设置 redis通过设置 daemonize yes来让redis作为一个守护进程运行 2.远程登陆 redis远程登陆需要做配置 3.关于bind bind属性配置了 Redis侦听来自服务器上所有可用网络接口的连接,例如我的电脑有两个网卡,两个ip,我再bind里配置了ip1,那么我再客户端链接redis的时候通过ip2去链接就链接不上,只能通过ip1去链接 4.关于protected-mode protected-mode默认为yes,需要配合bind一起使用,bind的值默认为127.0.0.1,开启这项配置的话,需要设置bind或密码 关闭配置的话,则不设置密码和bind都可以访问
mysql在操作视图的时候爆出以下错误 The user specified as a definer ('root'@'%') does not exist 这个错误一般是因为视图是我们从其他地方复制过来的,创建视图的用户不是我们本地的用户,对视图做一定的修改就可以解决这个问题,可以将视图的用户改成本系统的用户,或者删除视图,再创建 执行下面的命令查看创建信息 show create table time_zone_view 拿到创建语句,可以看到里面定义了一个创建者,我们需要删除这个视图,修改创建语句,删除语句中的definer再执行命令创建视图 这样就可以解决这个问题了
1.nginx下载 到清华镜像站下载nginx,也可以到官网下载 https://mirrors.ustc.edu.cn/nginx/ 2.解压文件 tar -zxvf nginx-1.9.9.tar.gz 3.安装nginx编译需要的环境 yum install -y gcc-c++ yum install -y pcre pcre-devel yum install -y zlib zlib-devel yum install -y openssl openssl-devel 4.nginx安装配置 目录下有一个叫configure,通过这个文件可以配置安装信息 这个文件可以帮助我们配置很多信息,例如安装位置等,但一般使用默认配置就足够了 nginx安装的时候,默认不支持https,需要在安装的时候加上配置 运行./configure --with-http_ssl_module 完成后就可以开始nginx之旅了
1.下载jdk https://www.oracle.com/cn/java/technologies/javase-downloads.html 下载的时候会提示登陆,此时开启浏览器调试直接拿到下载地址,在浏览器或迅雷中新建下载,可以不用登陆下载 2.上传到服务器解压 解压命令 tar -zxvf 压缩文件 3.配置环境变量 打开文件编辑 vi /etc/profile 输入配置信息 JAVA_HOME=/home/java/jdk1.8.0_261 CLASSPATH=$JAVA_HOME/lib/ PATH=$PATH:$JAVA_HOME/bin export PATH JAVA_HOME CLASSPATH JAVA_HOME就是jdk解压的位置 4.刷新配置 source /etc/profile
1.设置powerdesiger导入的代码语言为Java 文件---->逆向工程---->对象语言 2.导入代码所在的目录 上述操作完成点击确认选择代码 结束后点击确认就可以得到类图啦
1.工厂模式 工厂模式根据传递的参数来决定生产的产品,增加产品需要改动工厂的的代码,在明确不同条件生产不同实例的情况下可以使用这个模式(一般这个模式可以应付大多数场景了) 代码 手机接口: public interface Phone { void phoneInfo(); } 华为手机 public class Huawei implements Phone { @Override public void phoneInfo() { System.out.println("我是华为手机"); } } 小米手机 public class Xiaomi implements Phone { @Override public void phoneInfo() { System.out.println("我是小米手机"); } } 生产工厂,在工厂中,根据不同的类型,生成不同的手机 public class PhoneFactory { public Phone createPhone(String type){ Phone product =null; switch (type){ ....
1.maven引入依赖 <dependency> <groupId>org.apache.httpcomponents</groupId> <artifactId>httpclient</artifactId> <version>4.0.2</version> </dependency> 2.请求示例 package utils; import org.apache.http.HttpEntity; import org.apache.http.HttpResponse; import org.apache.http.NameValuePair; import org.apache.http.client.HttpClient; import org.apache.http.client.entity.UrlEncodedFormEntity; import org.apache.http.client.methods.HttpPost; import org.apache.http.im....
1.引入依赖 <!-- https://mvnrepository.com/artifact/dom4j/dom4j --> <dependency> <groupId>dom4j</groupId> <artifactId>dom4j</artifactId> <version>1.6.1</version> </dependency> 2.基本操作 2.1创建一个文档对象 Document document = DocumentHelper.createDocument(); 2.2创建一个节点 Element root = document.addElement("decision-table"); 2.3给节点添加属性值 root.addAttribute("num","100"); 2.4添加值到xml标签中 root.setText("标签内容"); 2.5将document对象转换成字符串 root.asXML(); 2.6将文档内容写入到xml文件 x....
1.代理模式 代理模式给原对象提供了一个代理对象,代理对象可以访问原对象的引用,扩展功能,符合设计模式的开闭原则(可以扩展,禁止修改内部功能)。 代理模式有静态代理、动态代理和cglib代理,静态代理一个代理只对应了一个原对象,动态代理利用反射机制,一个代理可以对应多个原对象,cglib代理也可对应多个原对象,动态代理在运行时动态创建一个类实现原对象的接口作为代理类来使用,cglib代理在运行时动态创建一个类继承原对象来带使用。 2.静态代理 接口 public interface User { void sayHello(); } 接口实现 public class TeacherImpl implements User { public void sayHello() { System.out.println("I'm teacher"); } } 代理类(代理类中,我们用代理类的方法sayHello来访问原对象User的sayHello()方法,并且扩展了该方法,这其实就是代理的主要作用--在不修改源代码的情况下,扩展服务功能) public class UserProxy ....
1.vue中配置websocket连接 data中添加属性 socket: null, 配置websocket连接信息 if (typeof (WebSocket) === 'undefined') { this.$message({ message: '您的浏览器不支持socket', type: 'error' }) } else { // 实例化socket this.socket = new WebSocket('ws://10.111.106.73:80//ws/webSocketServer.do') // 监听socket连接 this.socket.onopen = this.openSocket // 监听socket错误信息 this.socket.onerror = this.errorSocket // 监听socket消息 this.socket.onmessage = this.getMessageSocket // 关闭socket消息 this.socket.onclose = this.closeSocket } 配置连接打开关闭和获取信息的方法 ....
1.ftp和ftps ftp文件传输协议是应用层协议,用于传输文件信息,linux上需要安装vsftpd才能使用(明文传输) ftps为FTP协议和数据通道添加了SSL功能,可以对传输信息加密 2.ftp传输文件 引入maven依赖 <!-- https://mvnrepository.com/artifact/commons-net/commons-net --> <dependency> <groupId>commons-net</groupId> <artifactId>commons-net</artifactId> <version>3.6</version> </dependency> 代码,此处将传入的文件参数改为MultipartFile类型,方便前端传递文件数据,再转为File对象(建立临时文件,上传完成会删除),如果需要可以自己改为文件路径 package com.wyl.ppa.utils; import java.io.*; import java.ut....