数据结构与算法

分表后⾮sharding_key的查询怎么处理呢?

1. 可以做⼀个mapping表,⽐如这时候商家要查询订单列表怎么办呢?不带user_id查询的话你总不能扫全表吧?所以我们可以做⼀个映射关系表,保存商家和⽤户的关系,查询的时候先通过商家查询到⽤户列表,再通过user_id去查询。 2. 打宽表,⼀般⽽⾔,商户端对数据实时性要求并不是很⾼,⽐如查询订单列表,可以把订单表同步到离线(实时)数仓,再基于数仓去做成⼀张宽表,再基于其他如es提供查询服务

MySQL Explain

mysql执行计划 在日常工作中,为了知道优化SQL语句的执行,需要查看SQL语句的具体执行过程,以加快SQL语句的执行效率。 可以使用explain+SQL语句来模拟优化器执行SQL查询语句,从而知道mysql是如何处理sql语句的。 官网地址: 1、执行计划中包含的信息

566.【数据库自动化测试流程构建】各模块简介

从客户端到服务端简单介绍下整个数据库自动化测试的各个模块: 一、客户端功能模块 选择测试环境:包括单机版、集群版,指定自动构建的测试环境,提交后,将由服务端调用k8ssdk 在kubernetes中创建基础的数据环境; 选择jar版本:数据库版本迭代时发布的jar包,在测试环境启动时会根据该参数实时下载jar包; 选择测试数据集:包括ssb、tpch数据集,在测试环境启动时会根据该参数自动下载对

mysql之count(*)

在不同的 MySQL 引擎中,count(*) 有不同的实现方式。 MyISAM 引擎把一个表的总行数存在了磁盘上,因此执行 count(*) 的时候会直接返回这个数,效率很高;即没有where条件的过滤情况下,直接返回总数。 而 InnoDB 引擎就麻烦了,它执行 count(*) 的时候,需要把数据一行一行地从引擎里面读出来,然后累积计数。 对于 count(字段) 来说: 如果这个“字

日拱一卒:GROUP BY 分组

1. 基础 group by 对结果集进行分组,在分组的列上可以使用聚合函数(avg、sum、max、min、count) group by 必须在 where 之后 order by 之前 having 子句可应用限定条件进行分组 group by ... having ... 基本语法 SELECT column_name, function(column_name) FROM tabl

【优选算法 | 滑动窗口】滑动窗口算法:高效处理子数组和子串问题

算法 相关知识点 可以通过点击 以下链接进行学习 一起加油! 双指针 在本篇文章中,我们将深入剖析滑动窗口算法的核心原理。从基础概念到实战应用,带你了解如何利用滑动窗口高效解决连续子数组和子串等问题。无论你是算法入门的新手,还是希望提升代码效率的高手,滑动窗口都将成为你优化算法的重要武器!

flutter的异步操作 future、async、await

Future对象表示异步操作的结果,我们通常通过then()来处理返回的结果 async用于标明函数是一个异步函数,其返回值类型是Future类型 await用来等待耗时操作的返回结果,这个操作会阻塞到后面的代码 isolate异步并行多个任务,Future是异步串行多个任务 1、 future作为函数的返回对象 在普通函数中,return返回的为T,那么在async函数中返回的是Future&l

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

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

Mysql数据库查询好慢,除了索引,还能因为什么?

我熟练应用ctrl c和ctrl v 开发curd代码好多年了。 mysql查询为什么会慢,关于这个问题,在实际开发经常会遇到,而面试中,也是个高频题。 遇到这种问题,我们一般也会想到是因为索引。 那除开索引之外,还有哪些因素会导致数据库查询变慢呢? 有哪些操作,可以提升mysql的查询能力呢? 今天这篇文章,我们就来聊聊会导致数据库查询变慢的场景有哪些,并给出原因和解决方案。 数据库查询流程 我