Other

SpringBoot连接Redis

依赖 <!-- https://mvnrepository.com/artifact/org.springframework.boot/spring-boot-starter-data-redis --> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-data-redis</artifactId> <version>2.6.5</version> </dependency> <!-- https://mvnrepository.com/artifact/org.apache.commons/commons-pool2 --> <dependency> <groupId>org.apache.commons</groupId> <artifactId>commons-pool2</artifactId> </dependency> 配置redis的IP地址和端口号 redis: host: ip地址 port: 6379

常见的SQL优化面试题

原文:https://www.csdn.net/tags/MtjaQg3sMDA0NDAtYmxvZwO0O0OO0O0O.html  现在面试过程中,除了开发的基础,面试官通常还会问SQL优化的方面,SQL优化也能体现出来平时对数据库的理解和技术的高低。现在就总结了几个,希望对大家有帮助。  6.1.在表中建立索引,优先考虑where.group by使用到的字段。  6.2.查询条件中,一定不要使用select * ,因为会返回过多无用的字段会降低查询效率。应该使用具体的字段代替,只返回使用到的字段。  6.3.不要在where条件中使用左右两边都是%的like模糊查询,如:  SELECT * FROM t_order WHERE customer LIKE '%zhang%'  这样会导致数据库引擎放弃索引进行全表扫描。  优化:尽量在字段后面使用模糊查询。如下:  SELECT * FROM t_order WHERE customer LIKE 'zhang%'  6.4.尽量不要使用in 和not in,会造成全表扫描。如下:  SELECT * FROM t_order WHERE id IN (2,3)  SELECT * FROM t_order1 WHERE customer IN (SELECT customer FROM t_order2)  优化: 对于连续的数值,能用 between 就不要用 in ,如下:SELECT * FROM t_order WHERE id BETWEEN 2 AND 3

mysql慢sql查询

原文链接:https://blog.csdn.net/weixin_30995429/article/details/114798804 Mysql中 查询慢的 Sql语句的记录查找 慢查询日志 slow_query_log,是用来记录查询比较慢的sql语句,通过查询日志来查找哪条sql语句比较慢,这样可以对比较慢的sql可以进行优化。 1. 登陆我们的mysql数据库:  2. 查看一下当前的慢查询是否开启,以及慢查询所规定的时间: show variables like 'slow_query_log'; show variableslike 'long_query_time';  3. 如果你的查询后的结果是OFF 状态的话,就需要通过相关设置将其修改为ON状态: set global slow_query_log='ON';  4. 将慢查询追踪的时间设置为1s:  这里你在设置之后,这个世界是不会立即变成1s的,需要在数据库重启后才生效:  5. 设置慢查询日志文件保存的位置: set global slow_query_log_file='/var/lib/mysql/test_1116.log'; 6. 查看以下配置后的文件: sudo subl /var/lib/mysql/test_1116.log  ============================================================================================================================= ============================================================================================================================= MySQL数据库慢查询问题排查方法 最近碰到了几次数据库响应变慢的问题,整理了一下处理的流程和分析思路,执行脚本。希望对其他人有帮助。 MySQL慢查询表现 明显感觉到大部分的应用功能都变慢,但也不是完全不能工作,等待比较长的时间还是有响应的。但是整个系统看起来就非常的卡。 查询慢查询数量 一般来说一个正常运行的MySQL服务器,每分钟的慢查询在个位数是正常的,偶尔飙升到两位数也不是不能接受,接近100系统可能就有问题了,但是还能勉强用。这几次出问题慢查询的数量已经到了1000多。 慢查询的数量保存在mysql库里面的slow_log表。 SELECT * FROM `slow_log` where start_time > '2019/05/19 00:00:00'; 这样就能查出一天以来的慢查询了。 查看当前进行的查询状态 大家应该都比较常用show processlist来查看当前系统中正在执行的查询,其实这些数据也保存在information_schema库里面的processlist表,因此如果要做条件查询,直接查询这张表更方便。 比如查看当前所有的process select * from information_schema.processlist 查看当前正在进行的查询并按照已经执行时间倒排

《SeleniumBasic 3.141.0.0 - 在VBA中操作浏览器》高级技术之十四:Chromedriver进程的3种清理方法

使用SeleniumBasic启动浏览器以后,系统会多出Chrome浏览器的进程和相应的驱动文件这两个进程。 正常的做法是利用代码执行WebDriver.Quit方法关闭所有浏览器,并且退出Chromedriver驱动文件的进程。 但是很多情况下浏览器被手动或者其他行为关闭了,这样造成Chromedriver进程还残留在系统中。为了不影响下次使用Selenium,应该清理该进程。 方法一:在任务管理器中找到,然后结束任务     方法二:使用PowerShell的Stop-Process    执行 Stop-Process -Name chromedriver 按下回车后,该进程被清理的很干净。 方法三:利用WMI遍历进程 Sub TerminateProcess() Dim Service As Object, SOS As Object, SO As Object '后期绑定 Set Service = GetObject(winmgmts:\\.) Do Set SOS = Service.ExecQuery(Select * From Win32_Process Where Name='chromedriver.exe') If SOS.Count > 0 Then Set SO = SOS.ItemIndex(0) SO.Terminate Else Exit Do End If Loop End Sub 在VBA中输入上述过程,原理是遍历所有进程再根据进程名称过滤,然后终止每一个驱动文件对应的进程。 运行一下上述过程,进程被清理。

canal同步mysql数据到es中

cannl同步mysql数据到es中 canal组件介绍 canal-admin(非必须但推荐使用):为canal提供整体配置管理、节点运维等面向运维的功能,提供相对友好的WebUI操作界面,方便更多用户快速和安全的操作。 canal-server:服务端,从mysql读取binlog日志获取增量日志,可以通过tcp、kafka、RocketMQ等方式与客户端通信;通过zookeeper搭建集群。 canal-adapter客户端,根据canal-server获取的增量日志执行适配到其他诸如elasticsearch、redis、mysql等端,实现数据同步。 本次实验环境 首先我们需要下载canal的各个组件canal-server、canal-adapter、canal-admin,下载地址:https://github.com/alibaba/canal/releases es及相关工具的部署可参考Elasticsearch详解及部署 1、开启mysql的binlog 使用canal-server需要先准备mysql,对于自建 MySQL , 需要先开启 Binlog 写入功能,配置 binlog-format 为 ROW 模式 vi /etc/my.cnf [mysqld] log-bin=mysql-bin # 开启 binlog binlog-format=ROW # 选择 ROW 模式 server_id=1 # 配置 MySQL replaction 需要定义,不要和 canal 的 slaveId 重复 配置完成后重启mysql,并查询是否配置生效:ON就是开启 systemctl restart mysqld 可以进入数据库再次查看下 mysql> show variables like 'log_bin'; +---------------+-------+ | Variable_name | Value | +---------------+-------+ | log_bin | ON | +---------------+-------+ 1 row in set (0.

Nginx配置限制IP访问

屏蔽策略文件可以放在http, server, location, limit_except语句块中,我们可以根据需要合理的配置。 相关配置语句 屏蔽单个ip访问 # 格式: deny ip; deny 123.68.23.5; 允许单个ip访问 # 格式: allow ip; allow 123.68.25.6; 屏蔽所有ip访问 deny all; 允许所有ip访问 allow all; 屏蔽ip段访问 # deny ip/mask # 屏蔽172.12.62.0到172.45.62.255访问的命令 deny 172.12.62.0/24; 允许ip段访问 # allow ip/mask # 屏蔽172.102.0.0到172.102.255.255访问的命令 allow 172.102.0.0/16; 配置说明 新建一个配置文件,如blockip.conf。在其中编写相关的ip限制语句,然后在nginx.conf中加入如下配置: # 配置ip限制策略 include blockip.conf; nginx会根据配置文件中的语句,从上至下依次判断。因此,写在前面的语句可能会屏蔽后续的语句。

比较爽的导航查询 功能 - SqlSugar ORM

1、导航查询特点 作用:主要处理主对象里面有子对象这种层级关系查询 1.1 无外键开箱就用 其它ORM导航查询 需要 各种配置或者外键,而SqlSugar则开箱就用,无外键,只需配置特性和主键就能使用 1.2 高性能优   查询 性能非常强悍  支持大数据分页导航查询 3.3 语法超级爽 注意:多级查询时VS有时候没提示直接写就行了 var list=db.Queryable<Test>() .Includes(x => x.Provinces,x=>x.Citys ,x=>x.Street)//多级查询 有时候VS没提示手写 .Includes(x => x.ClassInfo)// 一级查询 .ToList(); var list=db.Queryable<Test>() //多级查询 加排序过滤 .Includes(x =>x.Provinces.Where(z=>z.Id>0).OrderBy(z=>z.Id).ToList(),x=>x.Citys,x=>x.Street) // 一级查询 .Includes(x =>x.ClassInfo) .ToList();  2、新导航查询  适合有主键的常规操作, 请升级到5.0.6.8 2.1 一对一 //实体 public class StudentA { [SugarColumn(IsPrimaryKey = true)] public int StudentId { get; set; } public string Name { get; set; } public int SchoolId { get; set; } [Navigat(NavigatType.

MySQL开启慢查询日志-windows版本

启动MySQL服务 net start mysql 关闭MySQL服务 net stop mysql 查询 show variables like 'slow_query%';show variables like 'long_query_time'; 将 slow_query_log 全局变量设置为“ON”状态 ,临时生效,mysql重启后就会失效 set global slow_query_log='ON'; 设置慢查询日志存放的位置 set global slow_query_log_file='D:\\Data\\mysql.log';  

MySQL事务

原子性 隔离性 一致性 持久性   事务 mysql默认开启事务自动提交 事务流程 关闭自动提交 set autocommit=0 开启事务:start transaction 提交:commit (成功) 回滚:rollback (失败) 结束事务:autocommit=1 开启自动提交    索引   索引原则 索引不是越多越好 不要对进场变动的数加索引 小数据量的表不需要索引 索引一般加在常用来查询的字段上 数据库用户管理     MySQL备份 保证重要的数据不丢失 数据转移 方式:直接拷贝物理文件,在可视化工具中导出,命令行导出 导入导出   三大范式