场景设想现在有个需求:设计一个评论系统,要求用户可以评论文章以及相互回复,无层级数限制。(程序员最常用的邻接表这里就不展开讲了,小伙伴们可以自行百度。)路径枚举路径枚举是一个由连续的直接层级关系组成的完整路径。如 /usr/local/lib 的 UNIX 路径是文件系统的一个路径枚举,其中 usr 是 local 的父亲,这也就意味着 usr 是 lib
......
462
0
0
2022-05-06
碰到Can not connect to MySQL server. Too many connections”-mysql错误着实令人抓狂。这基本等于失去了对 MySQL 的控制权。本教程将详细讲解多种处理此错误的方法。sudo mysql -uroot -p
ERROR 1040 (00000): Too many connections
本教程将分
......
489
0
0
2022-05-06
mysql优化一般优化都会先加索引,那么索引到底是什么?索引是帮助MySql高效获取数据的排好序的数据结构;数据结构分为: 二叉树 红黑树 Hash表 B-Tree二叉树二叉树的数据结构为:左边为数据存放的磁盘文件位置,右侧为二叉树的数据结构;二叉树的结构都是分叉时候左边下于当前数,右边大于当前数;这时候按照二叉树结构我们只需要查找三次就能找到数据存放磁盘的
......
365
0
0
2022-05-04
group_concat() 函数的作用是将group by产生的同一个分组中的值连接起来,返回一个字符串结果;基本语法:group_concat( [distinct] 要连接的字段 [order by 排序字段 asc/desc ] [separator '分隔符'] );说明:可以使用distinct排除重复值;可以使用order by子句对
......
454
0
0
2022-04-29
起因最近迁移了服务器,运维同学给导了数据库,数据库也跟着一起迁移到了新机房。今天,有用户发现自己创建的一条记录不见了,我去新库查询确实没有,去旧库查询到了这条记录,确定了是数据丢失。排查过程起初,怀疑迁移到新库已经有几天了,是否是这几天用户手动删除了这条记录?还好对用户的改动做了记录,经过查询发现,用户并没有删除动作。所以,大概率是数据库迁移引起的数据库丢失
......
414
0
0
2022-04-26
前几天在做一个需求的时候,需要清理mysql中重复的记录,当时的想法是通过代码遍历写出来,然后觉得太复杂,心里想着应该可以通过一个sql语句来解决问题的。查了资料,请教了大佬之后得出了一个很便利的sql语句,这里分享下这段sql语句和思路。需求分析数据库中存在重复记录,删除保留其中一条(是否重复判断基准为多个字段)解决方案碰到这个需求的时候,心里大概是有思路
......
359
0
0
2022-04-26
一、前言数据库的数据量达到一定程度之后,为避免带来系统性能上的瓶颈。需要进行数据的处理,采用的手段是分区、分片、分库、分表。二、分片(类似分库)分片是把数据库横向扩展(Scale Out)到多个物理节点上的一种有效的方式,其主要目的是为突破单节点数据库服务器的 I/O 能力限制,解决数据库扩展性问题。Shard这个词的意思是“碎片”。如果将一个数据库当作一块
......
410
0
0
2022-04-26
前言今天,程序员小王被老板训了一顿,还被扣了1k的工资,原因就是因为有一个项目已经上线,客户这边要求给数据库新添加一个用户,并给予用户某些权限,但是小王由于对这么方面有点生疏,都是现百度现实现,导致工作效率低,引发了老板的不满。小王痛定思痛,下决心要搞明白mysql的创建用户及授权,经过查阅各种资料学习, 小王对此了解的八九不离十了,从而在老板面前硬了起来…
......
388
0
0
2022-04-21
一、mysql锁介绍锁来源在存在并发操作的时候,必然需要一种机制来保证数据的完整性与一致性。锁就是这一技术的实现。锁种类根据概念分:悲观锁和乐观锁根据粒度分:表锁、页锁、行锁,最常见的就是表锁和行锁。其中,MyISAM引擎只有表锁,而InooDB既有表锁也有行锁。根据功能分:共享锁、排它锁(独占锁)、意向锁等。其中,共享锁被称为S锁。排它锁称为X锁。 锁
......
406
0
0
2022-04-21
基本架构图日志redo log: 保证即使数据库发生异常重启, 之前提交的记录都不会丢失, 这个能力称为crash-safe. InnoDB引擎特有的日志binlog: 归档日志redo log与binlog不同点redo log是InnoDB引擎特有的;binlog是MySQL的Server层实现的, 所有引擎都可以使用.redo log是物理日志, 记录
......
555
0
0
2022-04-21
我们成立于 2001 年,作为较早期的教育学习网站,当时技术选型范围并不大:Java 的版本是 1.2,C# 尚未诞生,MySQL 还没有被 Sun 收购,版本号是 3.23。工程师们选择了当时最合适的微软体系,并在日后的岁月里,逐步从 ASP 过度到 .net,数据库也跟随 SQL Server 进行版本升级。十几年过去了,技术社区已经发生了天翻地覆的变化
......
400
0
0
2022-04-19
MySQL 的锁可以分为三大类
全局锁表锁行锁
全局锁
对整个数据库实例加锁命令是 Flush tables with read lock (FTWRL) 当你让整个数据库处于只读状态,可以用这个,之后其他线程的所有增删改操作都会被阻塞,包括建表,修改表结构
应用场景
典型场景是做全库逻辑备份,确保不会有其他线程操作数据,但是带来的危险就是业务停摆
......
349
0
0
2022-04-18
优化查询语句不过是一项简单的工程,而非什么高深的黑魔法。许多人将数据库查询语句的调优视作哈利波特小说中某种神秘的“黑魔法”;使用错误的咒语,数据就会从宝贵的资源变成一堆糊状物。实际上,对关系数据库系统的查询调优是一项简单的工程,其遵循的规则或启发式方法很容易理解。查询优化器会翻译你发送给 MySQL 实例的查询指令,然后将这些启发式方法和
......
448
0
0
2022-04-18
前言事务隔离,ACID(Atomicity、Consistency、Isolation、Durability,即原子性、一致性、隔离性、持久性)事务隔离级别读未提交是指,一个事务还没提交时,它做的变更就能被别的事务看到。(read uncommitted)读提交是指,一个事务提交之后,它做的变更才会被其他事务看到。(read committed)可重复读是指
......
504
0
0
2022-04-18
redo log 是什么redeo log (重做日志),有一个比喻可以用来描述,就是酒店掌柜有一个粉板,用来记录客人的赊账记录,如果赊账的人不多,他可以记在粉板上,如果赊账的人多了,他记不下了,就需要有一个记账本。这时,如果客人来赊账或者还账,掌柜可以有两种方式:一是翻开记账本找到这个客人的所属赊账记录修改二是直接写在粉板上,等客人少的时候或者打样了写在本
......
480
0
0
2022-04-17