数据结构与算法

MySQL——并发insert on duplicate key update遇见死锁

前言 数据库死锁问题,是一个老生常谈且很常见的问题,网上也有非常多对于各类死锁场景的解析和复现,但凡和死锁有关,无外乎不涉及数据库隔离等级、索引、以及innodb锁等相关原因。 一、问题的背景: 我们的数据库中的发生死锁的表是具有”多列组合构建的唯一索引“(不包含自增的主键),且数据库的隔离等级为Read Committed,另外对于这个表来说是写入远大于读取的,由于业务的原因,经常会出现同一数据

Pandas|筛选包含特定字符的列

问题描述一: dataframe的某一列为字符串格式,想筛选出含有特定字符串的行,如书目数据的“简单分类号”列,筛选包含['N','O','P','Q','S','TB','TM','TN','TP','TS']分类号的数据。 使用模糊匹配,具体实现代码如下: select_list = ['N','O','P','Q','S','TB','TM','TP'] select_list  = '|'

FST值的数据可视化

一、准备工作; 用excel创建如下图的excel数据,然后保存成CSV格式 image.png 创建工作目录 getwd() 把准备好的文件放在这个工作目录下 一、读入数据; dt1<- read.csv("test.csv",sep=",", header = T) read.csv和read.csv2与read.table相同,但默认值除外。 它们用于读取“逗号分隔

MySql数据库分布式存储配置

一、环境准备: 主机名 角色 IP地址 client50 客户端 192.168.88.50/24 Mycat60 分片服务器 192.168.88.60/24 Mysql63 数据库服务器 192.168.88.63/24 Mysql64 数据库服务器 192.168.88.64/24 Mysql65 数据库服务器 192.168.88.65/24

拯救你那些富集不到结果的基因

数据整理 因为这个是我学生的真实数据,所以就不方便放出来给大家做示例文件了,可以只看代码,或者拿自己的数据练练手。 library(org.Hs.eg.db) library(clusterProfiler) library(dplyr) library(ggplot2) deg=read.csv("deg.csv",row.names = 1) head(deg) ##

MySQL慢查询:慢SQL定位、日志分析与优化方案

一个sql执行很慢的就叫慢sql,一般来说sql语句执行超过5s就能够算是慢sql,需要进行优化了 为何要对慢SQL进行治理 每一个SQL都需要消耗一定的I/O资源,SQL执行的快慢直接决定了资源被占用时间的长短。假设业务要求每秒需要完成100条SQL的执行,而其中10条SQL执行时间长导致每秒只能完成90条SQL,所有新的SQL将进入排队等待,直接影响业务 治理的优先级 master数据库

SQL注入专题(一)

一、数据库基本信息探测 探测数据库类型是SQL注入基本信息的一步,还有一些基本信息需要探测清楚,包括当前用户名、当前用户权限、当前数据库名、当前数据库表信息、当前数据库列信息。 二、手工注入-------使用Mysql特有库注出表名、列名、字段的值 使用数据库注出所有表名: union select 1,(select group_concat(table_name) from in

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),那么此时数据源还没有切换就会获取默认的数据源 ,这种情况