数据结构与算法

count(*) count(1)与count(字段)的区别

53fe20266ffc413a86c3b9abc9642dab.png 上翻译: 1、COUNT(expr) ,返回SELECT语句检索的行中expr的值不为NULL的数量。结果是一个BIGINT值。 2、如果查询结果没有命中任何记录,则返回0 3、但是,值得注意的是,COUNT(*) 的统计结果中,会包含值为NULL的行数。 那么问题来了count(*) 、count(1) 、

Springboot——多数据源事务、切换数据源+事务

前言 项目有多个数据源,根据配置文件配置的连接数来自动生成多数据源配置,并且使用 aop切换数据源,使用的是 AbstractRoutingDataSource 重写 determineCurrentLookupKey 方法。 在切换数据源之前 @Transactional 先执行,此时会去获取数据源,如果不使用用前置通知(@Before),那么此时数据源还没有切换就会获取默认的数据源 ,这种情况

TCGAbiolinks包报错:“Can't subset columns past the end”

2022年4月,TCGA数据库进行了一次更新,原来的HT-RNASeq数据被替换成了Star-RNASeq,这导致原有的TCGAbiolinks包能正常下载数据,但是不能用GDCprepare函数正常合并下载的数据集。如果用之前版本的包,在尝试这一步的时候会报错。 ERROR: Can't subset columns past the end 解决的办法就是升级TCGABiolinks这个包,

MyBatis-Plus执行SQL分析打印

一、说明 1、本文资料来自MyBatis-Plus官网 2、该功能依赖 p6spy 组件,完美的输出打印 SQL 及执行时长 3.1.0 以上版本 3、示例工程 二、操作步骤 2.1 p6spy 依赖引入 <dependency> <groupId>p6spy</groupId> <artifactId>p6spy</artifactI

mysql客户端连接很慢的解决办法

一般我们连接mysql,要么是通过终端直接连接,要么是使用navicat 这种软件连接,有时候会发生连接很慢的情况,大致分三种 1.远程连接mysql很慢,每次连接需要3秒及以上 原因是: 当远程访问mysql时, mysql会解析域名, 所以会导致访问速度很慢, 会有2,3秒延时! 原因是由于mysql对连接的客户端进行DNS反向解析 解决办法: 修改mysql的配置文件,在配置文件加上下面这个

MyBatis--动态SQL

接着上篇MyBatis--代理模式实现数据库增删改查,对于某些需要拼接的复杂SQL语句,MyBatis在映射文件中预定义了一些标签,可以利用这些标签来方便拼接自己的逻辑 一、if标签 顾名思义,if标签就是用来实现if判断的 实现根据员工对象获取员工信息,员工对象中的单个属性为空,则不参与查询条件 定义接口方法: /** * 根据员工对象获取员工信息 * @param

Vite多环境配置

多环境配置的实现方式 使用vite创建的项目,相比原来的webpack项目确实在性能上带来了非常大的提升,我自己练手的一个项目也是使用vite+typescript+vue3来构建的。在实际开发场景中,我们很多时候会用到多环境配置,一般项目至少会区分dev和prod环境,然后在不同的环境下给相同参数设置一个不一样的值。在vite中也提供了这种能力,在官方文档中给出了一个示例: .env

自动备份

录入凭证时,进到后台科目设置表要增加一个客户时,不知怎么误操作,科目设置表最左边一列科目代码都消失了。心里一阵紧张,怎么补救呢?重新建帐套,所有的凭证都要重新录入,想想都头大。 忽然想起来了,财务软件都有自动备份功能,有一次数据乱了,我不会自动备份,还是找客服远程帮我操作的,看来这次又要麻烦他了。想想客服态度不好,还是自己先看看会不会解决问题。 我打开自动备份文件,找到昨天的备份文件,打开文件类型

zabbix关键表解释

zabbix中所有clock字段都是用时间戳类型表示时间,在SQL查询中可以通过FROM_UNIXTIME(value, '%Y%m%d' )函数实现时间戳格式和时间格式的转换。 alerts 表记录了报警相关的历史记录 triggers 保存报警trigger的相关信息。其中priority字段的值分别对应web前端中显示的六种级别的报警: 0:Not classified 1:In