语句 数量 状态mysql

Squirrel状态机-从原理探究到最佳实践

作者:京东物流 郑朋辉 1 简介 Squirrel状态机是一种用来进行对象行为建模的工具,主要描述对象在它的生命周期内所经历的状态,以及如何响应来自外界的各种事件。比如订单的创建、已支付、发货、收获、取消等等状态、状态之间的控制、触发事件的监听,可以用该框架进行清晰的管理实现。使用状态机来管理对象生 ......
Squirrel 原理 状态

MySQL性能优化浅析及线上案例

关于数据库的性能优化其实是一个很复杂的大课题,很难通过一篇帖子讲的很全面和深刻,这也就是为什么我的标题是‘浅析’,程序员的成长一定是要付出代价和成本,因为只有真的在一线切身体会到当时的紧张和压力,对于一件事情才能印象深刻,但反之也不能太过于强调代价,如果可以通过一些别人的分享就可以规避一些自己业务的... ......
性能 案例 MySQL

docker搭建Elasticsearch、Kibana、Logstash 同步mysql数据到ES

一、前言 在数据量大的企业级实践中,Elasticsearch显得非常常见,特别是数据表超过千万级后,无论怎么优化,还是有点力不从心!使用中,最首先的问题就是怎么把千万级数据同步到Elasticsearch中,在一些开源框架中知道了,有专门进行同步的!那就是Logstash 。在思考,同步完怎么查看 ......
Elasticsearch Logstash 数据 docker Kibana

道长的算法笔记:状态机模型之股票系列问题

(一) 股票系列问题 所谓的股票问题,是一个动态规划状态机模型的系列问题,这些题目来自于LeetCode社区,这些问题非常经典,能够帮助我们理解动态规划的本质,这些问题大多初看之下会令人感觉无从下手,但是一旦掌握相应的方法划分状态之后,很快即可举一反三的写出相应的代码。 股票系列问题合集 LC121 ......
道长 算法 模型 状态 笔记

关于 MySQL 嵌套子查询中,无法关联主表字段问题的折中解决方法

今天在工作中写项目的时候,遇到了一个让我感到几乎无解的问题,在转换了思路后,想出了一个折中的解决方案,记录如下。 其实,问题的场景,非常简单: 就是需要查询出上图的数据,红框是从 项目产品表 中查询的2个字段,绿框是从与项目产品表关联的 文章表 中查询出的1个字段。我希望实现的效果是,获取到项目产品 ......
套子 字段 方法 问题 MySQL

Elasticsearch查询及聚合类DSL语句宝典

随着使用es场景的增多,工作当中避免不了去使用es进行数据的存储,在数据存储到es当中以后就需要使用DSL语句进行数据的查询、聚合等操作,DSL对SE的意义就像SQL对MySQL一样,学会如何编写查询语句决定了后期是否能完全驾驭ES,所以至关重要,本专题主要是分享常用的DSL语句,拿来即用。 ......
Elasticsearch 语句 宝典 DSL

Mysql索引覆盖

通常情况下,我们创建索引的时候只关注 where 条件,不过这只是索引优化的一个方向。优秀的索引设计应该纵观整个查询,而不仅仅是 where 条件部分,还应该关注查询所包含的列。索引确实是一种高效的查找数据方式,但是 mysql 也可以从索引中直接获取数据,这样就不在需要读数据行了。 ......
索引 Mysql

MySql索引下推知识分享

作者:刘邓忠 Mysql 是大家最常用的数据库,下面为大家带来 mysql 索引下推知识点的分享,以便巩固 mysql 基础知识,如有错误,还请各位大佬们指正。 1 什么是索引下推 索引下推 (Index Condition Pushdown,索引条件下推,简称 ICP),是 MySQL5.6 版本 ......
索引 知识 MySql

深入理解 MySQL 的事务隔离级别和 MVCC 机制

前言 我们都知道 MySQL 实现了 SQL 标准中的四个隔离级别,但是具体是如何实现的可能还一知半解,本篇博客将会从代码层面讲解隔离级别的实现方式,下面进入正题。 事务 考虑这样一个场景:博主向硝子酱的微信转了 520 块钱,在余额充足的正常情况下博主的账户余额会少 520 块,而硝子酱则会多 5 ......
级别 机制 事务 MySQL MVCC

Window系统的mysql数据库定时备份

原文:Window系统的mysql数据库定时备份 - Stars-One的杂货小窝 最近老大提到了数据库备份的功能,由于服务器是window系统的,所以研究了下备份的方案,特此记录 主要是实现每天定时备份功能,如果还要搞容灾的话,就得对mysql数据库进行主从配置了 cmd命令 核心的cmd命令如下 ......
备份 数据库 数据 Window 系统

一键部署MySQL8+keepalived双主热备高可用

概述 本次的文章会格外的长,网上大多的配置流程已经不可使用,本篇文章可以称为保姆级教程,而且通过shell脚本大大减少了部署mysql主从,双主的工作量。 如上图,VIP地址为192.168.10.100,如果主机192.168.10.129挂了,会自动切换到备机192.168.10.130上,由于 ......
keepalived MySQL8 MySQL

实时采集MySQL数据之轻量工具Maxwell实操

一个用于企业应用支持实时增量采集和全量采集MySQL数据开源框架Maxwell,功能强于Canal,比Flink CDC更易用。本篇先了解其定义和原理,然后通过安装和环境准备,了解其启动的两种方式,最后实操演示几个maxwell在企业中常用的场景示例。 ......
轻量 实时 Maxwell 工具 数据

架构设计(五):有状态服务和无状态服务

架构设计(五):有状态服务和无状态服务 作者:Grey 原文地址: 博客园:架构设计(五):有状态服务和无状态服务 CSDN:架构设计(五):有状态服务和无状态服务 无状态的服务 在横向扩展服务的过程中,将状态(例如用户会话数据)从服务中移出并将会话数据存储在持久性存储介质中,如关系型数据库或 No ......
状态 架构

有状态软件如何在 k8s 上快速扩容甚至自动扩容

概述 在传统的虚机/物理机环境里, 如果我们想要对一个有状态应用扩容, 我们需要做哪些步骤? 申请虚机/物理机 安装依赖 下载安装包 按规范配置主机名, hosts 配置网络: 包括域名, DNS, 虚 ip, 防火墙... 配置监控 今天虚机环境上出现了问题, 是因为 RabbitMQ 资源不足. ......
状态 软件 k8s k8 8s

深入解读MySQL InnoDB存储引擎Update语句执行过程

参考b站up 戌米的论文笔记 https://www.bilibili.com/video/BV1Tv4y1o7tA/ 书籍《mysql是怎样运行的》 极客时间《mysql实战45讲》 系列文章目录和关于我 一丶Mysql整体架构 MySQL 可以分为 Server 层和存储引擎层两部分 1.Ser ......
语句 过程 引擎 InnoDB Update

MySQL空间暴涨150G导致锁定,发生了什么

背景 12月1号中午突然收到大量报警,某客户环境操作数据库大量失败,报错信息如下图所示: 这个报错我是第一次见,一时间有点无所适从,但是从字面意思来看是MySQL目前处于LOCK_WRITE_GROWTH状态,拒绝执行当前的语句,一定是MySQL出问题了。 初定位 我随即登录阿里云控制台查看MySQ ......
MySQL 空间 150G 150

一步步带你设计MySQL索引数据结构

前言 MySQL的索引是一个非常重要的知识点,也基本上是面试必考的一个技术点,所以非常重要。那你了解MySQL索引的数据结构是怎么样的吗?为什么要采用这样的数据结构? 现在化身为MySQL的架构师,一步步迭代设计出MySQL的索引结构,保证你再也忘记不了索引的结构了,轻松通过面试。 索引介绍 MyS ......
数据结构 索引 结构 数据 MySQL

Mybatis源码解析之执行SQL语句

作者:郑志杰 mybatis 操作数据库的过程 // 第一步:读取mybatis-config.xml配置文件 InputStream inputStream = Resources.getResourceAsStream("mybatis-config.xml"); // 第二步:构建SqlSes ......
语句 源码 Mybatis SQL

MYSQL-INNODB索引构成详解

作者:郑啟龙 摘要: 对于MYSQL的INNODB存储引擎的索引,大家是不陌生的,都能想到是 B+树结构,可以加速SQL查询。但对于B+树索引,它到底“长”得什么样子,它具体如何由一个个字节构成的,这些的基础知识鲜有人深究。本篇文章从MYSQL行记录开始说起,层层递进,包括数据页,B+树聚簇索引,B ......
MYSQL-INNODB 索引 INNODB MYSQL

《MySQL必知必会》之快速入门存储过程

使用存储过程 本章介绍什么是存储过程,为什么使用、如何使用,并介绍如何创建和使用存储过程的基本语法 存储过程 在实际应用中,往往需要执行多个表的多条sql语句 存储过程就是为以后的使用而保存的一条或者多条sql语句的集合 使用存储过程的好处:简单、安全、高性能 创建存储过程 需求:一个返回产品平均价 ......
过程 MySQL

MySQL中这14个牛逼的功能,惊艳到我了!!!

前言 我最近几年用MYSQL数据库挺多的,发现了一些非常有用的小玩意,今天拿出来分享到大家,希望对你会有所帮助。 1.group_concat 在我们平常的工作中,使用group by进行分组的场景,是非常多的。 比如想统计出用户表中,名称不同的用户的具体名称有哪些? 具体sql如下: select ......
功能 MySQL

MySQL JDBC驱动版本与数据库版本的对应关系及注意事项

事情发生 学了三遍的servlet,经典老师又教的第一万遍登陆注册,并且让实现,并且让演示,我们老师可能和之前的小学期公司老师 完全没有沟通过,我们小学期大作业都做了一个小项目出来还搁这登陆注册。 就把五个月前写的一个小项目拿出来,是一个类似菜鸟教程的网站,不过只有java的教程,这都是后话, 项目 ......
版本 注意事项 事项 数据库 数据

Java开发学习(四十五)----MyBatisPlus查询语句之映射匹配兼容性

1、映射匹配兼容性 我们已经能从表中查询出数据,并将数据封装到模型类中,这整个过程涉及到一张表和一个模型类: 之所以数据能够成功的从表中获取并封装到模型对象中,原因是表的字段列名和模型类的属性名一样。那么问题就来了: 问题1:表字段与编码属性设计不同步 当表的列名和模型类的属性名发生不一致,就会导致 ......
兼容性 MyBatisPlus 语句 Java

Java开发学习(四十六)----MyBatisPlus新增语句之id生成策略控制及其简化配置

在前面有一篇博客:Java开发学习(四十一) MyBatisPlus标准数据层(增删查改分页)开发,我们在新增的时候留了一个问题,就是新增成功后,主键ID是一个很长串的内容。 我们更想要的是按照数据库表字段进行自增长,在解决这个问题之前,我们先来分析下ID该如何选择: 不同的表应用不同的id生成策略 ......
MyBatisPlus 语句 策略 Java

MySQL 的 NULL 值是怎么存储的?

大家好,我是小林。 之前有位读者在面字节的时候,被问到这么个问题: 如果你知道 MySQL 一行记录的存储结构,那么这个问题对你没什么难度。 如果你不知道也没关系,这次我跟大家聊聊 MySQL 一行记录是怎么存储的? 知道了这个之后,除了能应解锁前面这道面试题,你还会解锁这些面试题: MySQL 的 ......
MySQL NULL

mysql-DuplicateUpdate和java的threadpool的"死锁"

大家千万不要被文章的标题给迷惑了,他两在本篇文章是没有关系的, 今天给大家讲讲最近2个有意思的issue,分享一下我学到的 mysql DuplicateUpdate的用法要注意的点 java的threadpool使用不当会造成“死锁”问题 mysql DuplicateUpdate的用法要注意的点 ......

复现MySQL的索引选择失误以及通过OPTIMIZER_TRACE分析过程

复现MySQL的索引选择失误以及通过OPTIMIZER_TRACE分析过程 验证环境:MySQL 5.7.39 windows-pc 一、构造数据(生成150万数据) 构建一张账户表,带有一级部门id和二级部门id,并且建立有索引。比较典型的业务场景,根据部门id进行各类查询。 CREATE TAB ......

mysql基础问题三问(底层逻辑;正在执行;日志观察)

背景:经常面试会遇到且实际工作中也会应用到的三个场景: 目录: 一.mysql查询时的底层原理是什么? 二.如何查看正在执行的mysql语句? 三.如何观察mysql运行过程中的日志信息? - - - - - - - - - -分割线- - - - - - - - - - -一.mysql查询时的底 ......
底层 逻辑 正在 基础 问题

MySQL进阶实战5,为什么查询速度会慢

一、先了解一下MySQL查询的执行过程 MySQL在查询时,它是由很多子任务组成的,每个子任务都会消耗一定的时间,如果要想优化查询,实际上要优化其子任务,可以消除一些子任务、减少子任务的执行次数、让子任务执行的更快。 MySQL查询的执行过程:从客户端到服务器、然后在服务器进行解析、生成执行计划、执 ......
实战 速度 MySQL

MySQL进阶实战6,缓存表、视图、计数器表

一、缓存表和汇总表 有时提升性能最好的方法是在同一张表中保存衍生的冗余数据,有时候还需要创建一张完全独立的汇总表或缓存表。 缓存表用来存储那些获取很简单,但速度较慢的数据; 汇总表用来保存使用group by语句聚合查询的数据; 对于缓存表,如果主表使用InnoDB,用MyISAM作为缓存表的引擎将 ......
视图 缓存 计数器 实战 MySQL