起因最近迁移了服务器,运维同学给导了数据库,数据库也跟着一起迁移到了新机房。今天,有用户发现自己创建的一条记录不见了,我去新库查询确实没有,去旧库查询到了这条记录,确定了是数据丢失。排查过程起初,怀疑迁移到新库已经有几天了,是否是这几天用户手动删除了这条记录?还好对用户的改动做了记录,经过查询发现,用户并没有删除动作。所以,大概率是数据库迁移引起的数据库丢失 ......
449
0
0
2022-04-26
前几天在做一个需求的时候,需要清理mysql中重复的记录,当时的想法是通过代码遍历写出来,然后觉得太复杂,心里想着应该可以通过一个sql语句来解决问题的。查了资料,请教了大佬之后得出了一个很便利的sql语句,这里分享下这段sql语句和思路。需求分析数据库中存在重复记录,删除保留其中一条(是否重复判断基准为多个字段)解决方案碰到这个需求的时候,心里大概是有思路 ......
397
0
0
2022-04-26
一、前言数据库的数据量达到一定程度之后,为避免带来系统性能上的瓶颈。需要进行数据的处理,采用的手段是分区、分片、分库、分表。二、分片(类似分库)分片是把数据库横向扩展(Scale Out)到多个物理节点上的一种有效的方式,其主要目的是为突破单节点数据库服务器的 I/O 能力限制,解决数据库扩展性问题。Shard这个词的意思是“碎片”。如果将一个数据库当作一块 ......
456
0
0
2022-04-26
前言今天,程序员小王被老板训了一顿,还被扣了1k的工资,原因就是因为有一个项目已经上线,客户这边要求给数据库新添加一个用户,并给予用户某些权限,但是小王由于对这么方面有点生疏,都是现百度现实现,导致工作效率低,引发了老板的不满。小王痛定思痛,下决心要搞明白mysql的创建用户及授权,经过查阅各种资料学习, 小王对此了解的八九不离十了,从而在老板面前硬了起来… ......
420
0
0
2022-04-21
一、mysql锁介绍锁来源在存在并发操作的时候,必然需要一种机制来保证数据的完整性与一致性。锁就是这一技术的实现。锁种类根据概念分:悲观锁和乐观锁根据粒度分:表锁、页锁、行锁,最常见的就是表锁和行锁。其中,MyISAM引擎只有表锁,而InooDB既有表锁也有行锁。根据功能分:共享锁、排它锁(独占锁)、意向锁等。其中,共享锁被称为S锁。排它锁称为X锁。 锁 ......
436
0
0
2022-04-21
基本架构图日志redo log: 保证即使数据库发生异常重启, 之前提交的记录都不会丢失, 这个能力称为crash-safe. InnoDB引擎特有的日志binlog: 归档日志redo log与binlog不同点redo log是InnoDB引擎特有的;binlog是MySQL的Server层实现的, 所有引擎都可以使用.redo log是物理日志, 记录 ......
599
0
0
2022-04-21
我们成立于 2001 年,作为较早期的教育学习网站,当时技术选型范围并不大:Java 的版本是 1.2,C# 尚未诞生,MySQL 还没有被 Sun 收购,版本号是 3.23。工程师们选择了当时最合适的微软体系,并在日后的岁月里,逐步从 ASP 过度到 .net,数据库也跟随 SQL Server 进行版本升级。十几年过去了,技术社区已经发生了天翻地覆的变化 ......
447
0
0
2022-04-19
MySQL 的锁可以分为三大类 全局锁表锁行锁 全局锁 对整个数据库实例加锁命令是 Flush tables with read lock (FTWRL) 当你让整个数据库处于只读状态,可以用这个,之后其他线程的所有增删改操作都会被阻塞,包括建表,修改表结构 应用场景 典型场景是做全库逻辑备份,确保不会有其他线程操作数据,但是带来的危险就是业务停摆 ......
398
0
0
2022-04-18
优化查询语句不过是一项简单的工程,而非什么高深的黑魔法。许多人将数据库查询语句的调优视作哈利波特小说中某种神秘的“黑魔法”;使用错误的咒语,数据就会从宝贵的资源变成一堆糊状物。实际上,对关系数据库系统的查询调优是一项简单的工程,其遵循的规则或启发式方法很容易理解。查询优化器会翻译你发送给 MySQL 实例的查询指令,然后将这些启发式方法和 ......
492
0
0
2022-04-18
前言事务隔离,ACID(Atomicity、Consistency、Isolation、Durability,即原子性、一致性、隔离性、持久性)事务隔离级别读未提交是指,一个事务还没提交时,它做的变更就能被别的事务看到。(read uncommitted)读提交是指,一个事务提交之后,它做的变更才会被其他事务看到。(read committed)可重复读是指 ......
548
0
0
2022-04-18
redo log 是什么redeo log (重做日志),有一个比喻可以用来描述,就是酒店掌柜有一个粉板,用来记录客人的赊账记录,如果赊账的人不多,他可以记在粉板上,如果赊账的人多了,他记不下了,就需要有一个记账本。这时,如果客人来赊账或者还账,掌柜可以有两种方式:一是翻开记账本找到这个客人的所属赊账记录修改二是直接写在粉板上,等客人少的时候或者打样了写在本 ......
512
0
0
2022-04-17
背景 最近在做一个系统 需要去爬取一些可用的车型数据。昨晚脚本跑了几小时,今天一看哇,这么多数据~(ps 还有一张同级别的英文数据的表)还好做了分表处理 表数据 表结构 前端ui 系统其中一个这个接口需求大概是这样的: swId是车的品牌id 用户进入这个页面就会开始选择拉的数据 分别获取make车型,model系统,year年款 大 ......
444
0
0
2022-04-15
一、多表查询连接的选择:相信这内连接,左连接什么的大家都比较熟悉了,当然还有左外连接什么的,基本用不上我就不贴出来了。这图只是让大家回忆一下,各种连接查询。 然后要告诉大家的是,需要根据查询的情况,想好使用哪种连接方式效率更高。二、MySQL的JOIN实现原理在MySQL 中,只有一种Join 算法,就是大名鼎鼎的Nested Loop Join,他没有其他 ......
365
0
0
2022-04-14
查询数据时给字段设置别名,请问使用 GORM 如何把别名字段的值读取到结构体中?表结构DROP TABLE IF EXISTS "test"."test"; CREATE TABLE "test"."test" ("id" varchar(32) NOT NULL,"name" varchar(255) COLLATE "pg_catalog"."defa ......
571
0
0
2022-04-14
数据库层面问题解决思路一般应急调优的思路:针对突然的业务办理卡顿,无法进行正常的业务处理!需要立马解决的场景!1、show processlist2、**explain select id ,name from stu where name=<u>'clsn'</u>**; # ALL id name age sexselect id ......
389
0
0
2022-04-14